【发布时间】:2013-07-02 22:54:05
【问题描述】:
我创建了一个游戏模型作为一个类。我检查了这个关于创建类扩展的问题:Best way to define private methods for a class in Objective-C
我拥有的是一些公共方法——这些方法可供其他 VC 在应用程序中使用。 我还想要一些私有方法,类公共方法可以使用,但不需要对应用程序的其余部分开放。
我认为这可以通过类扩展来实现,在实现文件中添加一个额外的接口部分,但这似乎不起作用。
Imp 文件:
#import "MESGameModel.h"
@interface MESGameModel ()
-(BOOL)checkIfGameAlreadyExistsAgainst:(PFUser *)opponentUser;
@end
@implementation MESGameModel
#pragma mark - Public methods
+(void)createNewGameAgainst:(PFUser *)user2 withCompletion:(void (^)(BOOL success))completionHandler{
稍后我有另一个私有方法的声明:
#pragma mark - Private methods
-(BOOL)checkIfGameAlreadyExistsAgainst:(PFUser *)opponentUser {
我正在寻找的是能够在公共方法 (createNewGameAgainst) 中调用例如 [self checkIfGameAlreadyExistsAgainst...]。
【问题讨论】:
-
顺便说一句:从 XCode 4.3 附带的 LLVM 开始,您不必再转发声明私有方法了。
-
这是否意味着不需要实现文件中的整个接口部分,如果头文件中没有定义,它会自动将其作为私有方法提取?
-
可以,但仅限 Xcode 4.3 及更高版本
-
@StuartM 我可能会扯淡,但是,不,这并不意味着“不需要实现文件中的整个接口部分”。这只是意味着您不必转发声明私有方法。但是,您仍然在私有类扩展中定义您的私有属性。如果您没有私有属性(就像这里的情况一样),那么您不需要私有类扩展。但是类扩展非常有用;但对于私有财产来说,这比什么都重要。
标签: ios objective-c ios5 methods class-extensions