Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解Objective-C参考符号_Objective C - Fatal编程技术网

理解Objective-C参考符号

理解Objective-C参考符号,objective-c,Objective C,有人能解释一下Objective-C的文档格式吗: e、 g 为什么是加号?为什么在某些情况下使用减号?你们能帮我准确地理解参考页面中每项任务开始时出现这些代码行时的格式吗 当一个方法定义如下时,它意味着什么: -(NSString *)description 为什么有*?它是指向某物的指针吗?为什么它的格式是这样的 一,。 “+”表示函数是静态的,“-”表示函数需要实例。 静态函数不需要实例,而是调用类。通常,这些初始化器会向您返回一个自动释放实例 二,。 是的,这是因为它是指向NSC对象

有人能解释一下Objective-C的文档格式吗:

e、 g

  • 为什么是加号?为什么在某些情况下使用减号?你们能帮我准确地理解参考页面中每项任务开始时出现这些代码行时的格式吗

  • 当一个方法定义如下时,它意味着什么:

    -(NSString *)description
    
  • 为什么有
    *
    ?它是指向某物的指针吗?为什么它的格式是这样的

  • 一,。 “+”表示函数是静态的,“-”表示函数需要实例。 静态函数不需要实例,而是调用类。通常,这些初始化器会向您返回一个自动释放实例

    二,。 是的,这是因为它是指向NSC对象的指针

    三,。 -(NSString*)说明

    这意味着您正在查看文档的类有一个名为description的方法,当对该类的实例调用该方法时,该方法将返回指向NSString对象的指针

    为什么是加号?为什么在某些情况下使用减号

    加号表示该方法是类方法。在类上调用它,它将返回该类的一个实例。因此:
    +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);