-6

有人可以向我解释写这些时的情况和区别吗?

 - (id) startsWithMinus:(NSString *)title;

或者

 + (id) startsWithPlus:(NSString *)title;
4

3 回答 3

3

以开头+表示您正在声明一个类方法。以开头-表示您正在声明一个实例方法。

如果您不熟悉这些术语,那么您应该看到这个问题以获得解释。

于 2013-06-08T22:00:11.707 回答
0

正如这里所指出的,+ 表示类方法,- 表示实例方法。

可能与您的编程相关的重要区别是何时使用类与实例方法。类方法 (+) 只是您使用类调用的方法。因此,类似于 [[DataAccess class] getInfoFromServer]。当您不需要访问属性但想要与类相关的特定行为时,您可能希望使用类方法(例如,调用 DataAccess 类从服务器获取信息是有意义的。)

或者,当您想要分配和初始化一个对象然后使用它的属性时,您可能想要使用实例方法。例如,DataAccess * accessObject = [[DataAccess alloc] init] 会给你一个 DataAccess 对象。该对象可能具有相关属性,这些属性将在您的 .h 文件或 .m 文件中的 @interface 中声明。

例如,与 DataAccess 类一起使用时,您将在 @implementation 之前的 .m 文件中声明类似的内容。

 @interface DataAccess()
 @property (strong, non-atomic) NSDictionary * data;

 @end

然后在任何给定的实例方法中,您可以假设对象具有数据集。因此,您可以在实例方法中使用 self.data 之类的调用来获取数据,因为您假设调用该方法的对象已经设置了属性数据。如果您使用类方法,则无法调用 self.data,因为您没有使用该方法的特定实例。

简单地说,您可以将类方法视为与类相关的简单函数,您不需要访问类实例的特定属性,而您可以将实例方法视为需要class 来调用它,因为它需要与实例关联的属性(类的分配对象)才能正常工作。

于 2013-06-08T22:13:09.753 回答
-1

+代表类方法,而-代表实例方法

于 2013-06-08T22:01:05.160 回答