gpt4 book ai didi

cocoa - 为什么我的内部成员变量的名称会破坏数据绑定(bind)?

转载 作者:行者123 更新时间:2023-12-03 17:42:06 25 4
gpt4 key购买 nike

所以我对 cocoa 编程真的很陌生。事实上我对 Mac 平台也很陌生。仍在尝试习惯 control+向左箭头将我带到行首的事实。

好的:因此,我正在学习《Cocoa 编程(第四版)》(Hillegass 着)一书中的教程。所以我进入了第 9 章,它介绍了如何创建一个文档 View 应用程序,该应用程序使用 NSArrayControler 绑定(bind)到 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 上的绑定(bind)似乎中断了。因此 setEmployee、insertObject 和 removeObject 之类的方法从未被调用。

现在我对 Objective-C 还很陌生,但我认为 mEmployee 是我的“RMDocument”接口(interface)的内部成员变量,我可以将其命名为任何我想要的名称。我想在名称前加上“m”前缀,以便将其与其他变量名称区分开来(有点像 C++ 中的成员变量)。显然这是一个很大的禁忌。

那么为什么变量名有这么大的作用呢?

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

谢谢!

最佳答案

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

顺便说一句,你用“m”作为成员变量前缀的想法不是典型的 Cocoa 风格;它可能会使您的代码对其他人来说更难以阅读。

关于cocoa - 为什么我的内部成员变量的名称会破坏数据绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com