2011-06-12 38 views
0

希望这不违反每页上发布超过1个问题的规则。关于提高我的编码质量的问题数量:

  1. 我有value1,它根据value2的变化而变化。正因为如此,每次我改变value2时,我都会[自我改变值1],然后运行一些代码,它看着值2并改变值1。有没有更自动的方式来做到这一点,我可以在value2更改并调用这样的方法时通知应用程序?

  2. 我有方法(如上面的那个),我不想从该类外部访问。我如何使一个方法是私人的?

+0

听起来像是委托给我的工作。 – PengOne 2011-06-12 15:40:05

+1

下次再问一个问题可能会更好。 – 2011-06-12 15:45:35

回答

2

ad 1.在文档中查找Key Value Observing。

ad 2.定义私有类别中的方法。这并不意味着其他类不能再调用这个方法,但至少你会被编译器警告。

在你MySubclass.m:

@interface MySubclass() 

- (void)myPrivateMethod; 

@end 

@implementation MySubclass 

etc. etc. 
1

问题1,你可以看到核心价值观测:http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/KeyValueObserving/KeyValueObserving.html

对于问题2,你可以在上面添加一个扩展类的.m文件添加方法

@interface MyClass() 

-(void) _myPrivateMethod; 

@end 
+0

在开始时有一个_而没有一个有什么区别? – Andrew 2011-06-12 15:50:05

+0

只是知道这种方法是私人的命名方式 – AmineG 2011-06-12 15:58:06

+1

以下划线开头的方法(和变量)名称由Apple保留。如果有什么使它成为尾部下划线,但我通常不认为需要这样做。仅在私人类别中定义方法的事实足以使其清晰。 – 2011-06-12 16:03:48