理解Objective-C参考符号
有人能解释一下Objective-C的文档格式吗: e、 g理解Objective-C参考符号,objective-c,Objective C,有人能解释一下Objective-C的文档格式吗: e、 g 为什么是加号?为什么在某些情况下使用减号?你们能帮我准确地理解参考页面中每项任务开始时出现这些代码行时的格式吗 当一个方法定义如下时,它意味着什么: -(NSString *)description 为什么有*?它是指向某物的指针吗?为什么它的格式是这样的 一,。 “+”表示函数是静态的,“-”表示函数需要实例。 静态函数不需要实例,而是调用类。通常,这些初始化器会向您返回一个自动释放实例 二,。 是的,这是因为它是指向NSC对象
-(NSString *)description
*
?它是指向某物的指针吗?为什么它的格式是这样的+arrayWithObject:
的调用方式如下:
NSArray *myArray = [NSArray arrayWithObject:someObject];
这将创建名为myArray
的NSArray*
的单个元素实例,其中包含对someObject
的引用
(为了简单起见,我不打算讨论此方法的内存管理方面,只想说,autorelease
将在myArray
的生命周期结束时为您调用。此方法的另一个变体将返回NSArray*
的保留实例,您必须自己释放它,您可以如果阵列需要超过其功能的使用寿命,请优先选择。请通读Apple的,或阅读Objective-C教程或书籍。了解如何管理内存对于Objective-C开发的成功至关重要。)
减号表示该方法是一个实例方法。您在类的实例上调用它,它将返回其他内容,如数字或其他对象
例如,我们想知道刚刚制作的NSArray
实例中对象的数量。因此我们在myArray
上调用-count
方法:
NSUInteger numberOfObjects = [myArray count];
NSLog(@"there are %u objects in myArray", numberOfObjects);
(请注意,在NSUInteger
之前没有*
。这是因为NSUInteger
不是对象类型,而只是Apple用于无符号int
C数据类型的另一个名称。)
-count
实例方法的声明为:
-(NSUInteger)count;
下面将对此进行解释
当一个方法被这样定义时,它意味着什么:…为什么*存在?它是指向某个东西的指针吗?为什么它的格式是这样的
以下方法:
-(NSString *)description
声明我们有一个名为-description
的实例方法,该方法对类的实例(不管该类可能是什么,比如NSArray*
实例)进行操作,并返回一个NSString*
,它给出该实例的描述
请注意,此方法返回的是NSString*
,而不是NSString
。这是因为这些函数传递指向对象的引用或指针,而不是对象本身
如果我们在myArray
上调用-description
,假设它包含someObject
,那么Xcode控制台将显示myArray
的描述及其内容:
NSLog(@"%@", [myArray description]);
请注意,Apple提供了一个快捷方式,当与NSLog()
一起使用时,对象上会自动调用-description
NSLog(@"%@", myArray);
为了调用myArray
上的-description
因为在对象上调用-description
在NSLog()中是多余的
声明,Objective-C开发人员更喜欢第二种方法。您的问题是关于非常基本的Objective-C构造,与Apple或其文档几乎没有关系。我建议您在线或在书中查看一些Objective-C教程。感谢Adam,是的,我现在正在阅读一本Objective-C书籍,其中包括我同意开发者资源页面的概念,但在主题上没有太多内容。我投票结束这个问题,因为@Hollowproc你没有投票结束一个问题的名声,也没有评论的名声。@PetterFriberg我已经从帖子中清除了所有苹果特有的语言。非常感谢你。现在不能更清楚了,我保留了阅读apple参考页面中的内容,但不了解它们的格式意味着什么,我现在就不知道了,谢谢!!!alex只是想进一步澄清一下:如果我有一个特定的实例方法,它看起来像这样:-(void)addownerNameObject:(NSString*)n、 调用此方法时接受NSString并将其设置为ivar“n”是否正确?它接受几乎总是有的NSString*
。看到非指针NSString
是不常见的。
NSLog(@"%@", myArray);