【问题标题】:private methods in cocoa? [duplicate]可可中的私有方法? [复制]
【发布时间】:2011-07-02 18:51:35
【问题描述】:

可能重复:
Best way to define private methods for a class in Objective-C

嗨, 我可以为可可应用程序中的任何类设置私有方法吗? 如果是,如何?

【问题讨论】:

标签: objective-c cocoa


【解决方案1】:

是的,你可以!

在您的 *.m 文件中(实现)

#import "MyClass.h"

@interface MyClass() 
- (void)privateMethod();
@end 

@implementation MyClass

- (void)dealloc {
    [super dealloc];
}

- (void)privateMethod
{
   NSlog(@"myPrivateMethod");
}
@end

【讨论】:

  • 这是您在 Obj-C 中可以做到的最好的方法,但请注意,它并不是真正私有的——另一个类仍然可以调用私有方法,(尽管带有编译时警告 'MyClass' may not respond to '-privateMethod' )。查看链接问题的详细答案。
【解决方案2】:

如果以 Java 为例,我会告诉你私有方法并不容易实现。

要实现它们,您应该在 .m 文件中实现包含您希望私有的那些方法的签名的接口。 由于导入“始终”涉及 .h 文件,因此该解决方案用作私有方法实现解决方案。

恢复:使用 .h 公开您的公共方法。使用 .m 中的接口使方法可以用作私有方法。

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 2017-02-14
    • 2016-12-23
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    相关资源
    最近更新 更多