0

所以我对可可编程真的很陌生。事实上,我对 Mac 平台也很陌生。仍然试图习惯控制+左箭头将我带到行首的事实。

好的:所以我正在学习 Hillegass 的“Cocoa Programming (4th edition)”一书中的教程。所以我到了第 9 章,它介绍了如何创建一个文档视图应用程序,它使用 NSArrayControler 绑定到 Person 的 NSMutableArray。

本教程引导我创建了一个文档子类,并添加了一个 NSMutableArray 指针。所以我冒昧地把它命名为 mEmployee's 而不仅仅是雇员。

@interface RMDocument : NSDocument
{
    NSMutableArray* mEmployees;
}
-(void) setmEmployees:(NSMutableArray*)a;

-(void) insertObject:(Person*)p inEmployeesAtIndex:(NSUInteger)index;
-(void) removeObjectFromEmployeesAtIndex:(NSUInteger)index;

-(void) startObservingPerson:(Person*) person;
-(void) stopObservingPerson:(Person*) person;

@end

现在,当我这样做时,似乎 NSArrayController 上的绑定中断了。因此从未调用过 setEmployee、insertObject 和 removeObject 等方法。

现在我对 Objective-C 还是很陌生,但我认为 mEmployee's 是我的“RMDocument”接口的内部成员变量,我可以随意命名它。我想在名称前加上“m”,以便将其与其他变量名称区分开来(类似于 C++ 中的成员变量)。显然,这是一个很大的不,不。

那么为什么变量名会产生如此大的影响呢?

我已将项目的整个源代码放在: https ://www.dropbox.com/sh/fq166ap3xzlw5xc/EZJXqIZPRY/RaiseMan

谢谢!

4

1 回答 1

2

访问器方法的名称需要遵循命名约定:对于属性“foo”,setter 是“setFoo”(注意大写)。所以,你需要有setMEmployees,而不是setmEmployees

附带说明一下,您使用“m”作为成员变量前缀的想法不是典型的 Cocoa 风格;它可能会使您的代码更难被其他人阅读。

于 2012-05-02T01:48:21.253 回答