首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在接口之外声明objective c中的方法?

如何在接口之外声明objective c中的方法?
EN

Stack Overflow用户
提问于 2012-03-31 01:17:58
回答 2查看 2K关注 0票数 1

在.m文件中使用方法时,在.h文件中声明该方法时,智能检测到该方法,并且不会引发警告。

当方法仅在.m文件中声明时,如果在正在使用的方法下面声明,则智能感知不会检测到该方法。

为了避免警告,xcode中有一个标志,但我不希望禁用它。

有没有办法在.m中声明这些方法,以便被智能感知检测到而不发出警告?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-31 01:24:26

有两种方法可以修复它:

或者:在.m文件的顶部使用class extension声明私有方法:

代码语言:javascript
复制
@interface Foo ()

- (void)privateMethod;

@end

或者:升级到Xcode 4.3.1,其中包含较新版本的clang。此较新版本的编译器不需要先前声明的方法在同一编译单元中调用它们。

不过,类扩展仍然有利于兼容性或声明私有属性。

票数 4
EN

Stack Overflow用户

发布于 2012-03-31 01:22:37

您可以使用类别在类上声明其他方法。

例如,在.m文件的顶部添加以下内容:

代码语言:javascript
复制
@interface MyClass (PrivateCategory)

-(void)foo;
-(void)bar;

@end

我会让Xcode知道MyClass还会响应foobar(PrivateCategory)告诉编译器,您要添加的方法应该在PrivateCategory类别下“分组”。你可以选择任何你想要的名字,甚至根本没有名字(尽管“匿名类别”有稍微不同的语义)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9947560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档