这些ObjC声明如何不同:即这是真的在做什么?

时间:2010-06-29 19:30:37

标签: objective-c declaration

我试图了解每种情况下的情况。有人可以解释第一个案例的详细内容以及它与第二个案例的区别吗?谢谢// :))

//declare in first case
NSManagedObjectModel *mom();

NSManagedObjectModel *mom() {
 static NSManagedObjectModel *mom = nil;
//implementation goes here...
 return mom;
}

VS

//no declaration in second case
- (NSManagedObjectModel *) mom {
 static NSManagedObjectModel *mom = nil;
//implementation goes here...
 return mom;
}

1 个答案:

答案 0 :(得分:3)

第一个是独立功能;它不依赖于一个阶级。你会这样称呼:

NSManagedObjectModel *retVal = mom();

第二个是实例方法定义,因此在类的上下文中定义。你会这样称呼:

NSManagedObjectModel *retVal = [someObject mom];