【问题标题】:What exactly the first argument `identifier` in Objective-C? [closed]Objective-C 中的第一个参数 `identifier` 到底是什么? [关闭]
【发布时间】:2016-12-25 10:39:18
【问题描述】:

请注意,这可能是一个非常基本的问题。从 JavaScript 背景学习 Objective-C。我想我需要额外解释一下下面的 identifier 参数到底是什么?

- (BOOL)isEqualTo:(NSString *)identifier;

【问题讨论】:

  • 它的第一个参数。
  • 请事先研究你要问什么,尝试解决你自己的问题。这表明绝对没有尝试找出它是什么。
  • 关于Objective-C的教程数不胜数。请花时间浏览其中的几个。这个基本的问题真的没有堆栈溢出的地方。

标签: arguments


【解决方案1】:

identifier 参数是您需要比较的字符串。例如:

NSString* yourString = @"Hello"; 
BOOL match = [yourString isEqualToString: @"aString"]; //currently returns NO

//handle match value according to your needs, e.g with if-else syntax.  
if (match) { 
    //YES flow
}
else {
    //NO flow
}

其中@"aString" 是一个方法参数,命名为identifier(在您的情况下)用于isEqualToString API 的Foundation 框架实现。

【讨论】:

  • 既然 OP 显然对 Objective-C 没有基本的了解,那么说明返回值应该如何使用也会很有帮助。
  • @rmaddy 好的,好点。
【解决方案2】:

identifier 是发送者(或调用者,即代码中的您)作为参数传递的对象的名称。[anObject isEqualTo: @"Something"];

在这种特殊情况下,您永远不会真正使用它,它是您发送的对象在isEqualTo 的实现中被引用的名称。您看不到 Apple 代码,但您知道他们使用 identifier 在该方法的上下文中命名您的对象。该指针必须指向 NSString 类的一个实例。

【讨论】:

    猜你喜欢
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2014-06-02
    • 2018-03-28
    • 2020-09-26
    相关资源
    最近更新 更多