|  |      1danny106      2014-07-25 10:20:06 +08:00  1 可以 | 
|  |      2xuan_lengyue      2014-07-25 10:28:12 +08:00  1 可以,Objective-C 是动态绑定的,所以你甚至有可能一不小心把父类的 private 方法覆盖掉… 不知道为什么,我的方法命名准则和 Apple 工程师的很像,所以…全是泪… | 
|  |      3LINAICAI      2014-07-25 10:51:33 +08:00  1 这点非常不好,首先养成不好习惯了,我都很少还在h文件声明,第二就是楼上提到的会不小心覆盖了父类。 | 
|  |      4Shared OP @danny106  @xuan_lengyue @LINAICAI 多谢几位的回答,我是学 KVO 的时候发现 observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 不用在头文件里声明。如果什么时候可以这么做,什么时候不应该这么做呢? | 
|  |      5xuan_lengyue      2014-07-25 13:56:12 +08:00  1 @Shared 你可以在 Xcode 里右键看一下 Definition,这个方法出现在 Fundation 的 NSKeyValueObserving.h 头文件里,是个 NSObject 的 Category,所以会有代码提示。 在 Objective-C 里你基本上可以把写在头文件里的方法看作其它语言的 public 方法,不写在头文件里的看作 private 方法,没有具体的对错之分。 | 
|  |      6Shared OP @xuan_lengyue 明白了!不过如果这样做相当于 private method 的话,为什么可以被覆盖掉呢 |