在.m文件中使用方法时,在.h文件中声明该方法时,智能检测到该方法,并且不会引发警告。
当方法仅在.m文件中声明时,如果在正在使用的方法下面声明,则智能感知不会检测到该方法。
为了避免警告,xcode中有一个标志,但我不希望禁用它。
有没有办法在.m中声明这些方法,以便被智能感知检测到而不发出警告?
谢谢。
发布于 2012-03-31 01:24:26
有两种方法可以修复它:
或者:在.m文件的顶部使用class extension声明私有方法:
@interface Foo ()
- (void)privateMethod;
@end或者:升级到Xcode 4.3.1,其中包含较新版本的clang。此较新版本的编译器不需要先前声明的方法在同一编译单元中调用它们。
不过,类扩展仍然有利于兼容性或声明私有属性。
发布于 2012-03-31 01:22:37
您可以使用类别在类上声明其他方法。
例如,在.m文件的顶部添加以下内容:
@interface MyClass (PrivateCategory)
-(void)foo;
-(void)bar;
@end我会让Xcode知道MyClass还会响应foo和bar。(PrivateCategory)告诉编译器,您要添加的方法应该在PrivateCategory类别下“分组”。你可以选择任何你想要的名字,甚至根本没有名字(尽管“匿名类别”有稍微不同的语义)。
https://stackoverflow.com/questions/9947560
复制相似问题