Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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 Or和返回值说明_Objective C - Fatal编程技术网

Objective c Or和返回值说明

Objective c Or和返回值说明,objective-c,Objective C,我还在学习objective-C,这段代码看起来很奇怪,很难得到好的搜索结果 @interface Practice : NSObject { NSString *name; NSString *sortKey; } - (NSComparisonResult)sortPack:(Practice *)other { return [[self sortKeyOrName] caseInsensitiveCompare:[other sortKeyOrName]]; }

我还在学习objective-C,这段代码看起来很奇怪,很难得到好的搜索结果

@interface Practice : NSObject 
{
   NSString *name;
   NSString *sortKey;
}

- (NSComparisonResult)sortPack:(Practice *)other
{
    return [[self sortKeyOrName] caseInsensitiveCompare:[other sortKeyOrName]]; 
}
我的问题是:

  • [self-sortKeyOrName]中的“或”可以是两个变量之一?如果是这样,它如何确定采用哪个变量

  • 此调用中的流程是如何工作的?这是我对此的看法,它比较other和sortKeyOrName,然后返回其asc、desc或相同的值,返回的值是否分配给[self sortKeyOrName]


  • 谢谢。

    首先,我建议你清楚地阅读,因为你不完全理解这门语言,但我已经做了很多年了,我不完全理解这门语言


    实例变量
    name
    sortKey
    与方法
    sortPack:
    无关。因此,NO“或”并不意味着它可以是两个变量中的任何一个,
    sortKeyOrName
    是一个方法调用

    一个方法由三个部分组成:第一个是返回类型,因此在
    sortPack:
    的情况下,返回类型是
    NSComparisonResult
    。然后是方法名
    sortPack
    ,最后是参数
    other
    ,它必须是
    practice*
    对象

    因此,您可以调用此方法,如
    NSComparisonResult=[self-sortPack:object]

    知道了这一点,我们现在可以看看这个方法的主体在做什么,因为我们现在知道,
    sortPack
    返回一个
    NSComparisonResult
    ,这意味着
    [[self-sortKeyOrName]caseInsensitiveCompare:[other-sortKeyOrName]
    还必须返回一个
    NSComparisonResult

    [[self-sortKeyOrName]案例不敏感比较:[other-sortKeyOrName]]
    所做的是首先从
    [self sortKeyOrName]
    获得一些结果,因为这是一个返回某些内容的方法调用,然后它将其与
    [other sortKeyOrName]
    返回的内容进行比较,后者也是另一个返回某些内容的方法调用。因此,我们可以将其视为比较
    [@“SomeString”不区分大小写比较:@“AnotherString”](不确定这两个方法返回什么,因此猜测字符串)

    将这两个结果进行比较后,它将从
    sortPack
    返回结果作为
    NSComparisonResult


    希望您能从链接中更好地了解这一点。

    从哪里获得此代码?请阅读此代码主要是“方法和消息传递”。
    name
    sortKey
    sortPack
    功能无关
    [self-sortkeyOrName]
    是一个方法调用。
    [[self-sortKeyOrName]caseInsensitiveCompare:[other-sortKeyOrName]]的结果
    将作为
    NSComparisonResult
    返回给调用
    sortPack:
    方法的任何人。感谢Popey提供的链接。这解释了我的很多问题@CRDave-仅用于练习目的的样本objective-c代码的随机搜索。Popey评论解决了我的疑问。