何时/何地应该在Objective-C中使用箭头符号"->"?



我刚刚清楚地解释了这里的"->"符号是什么:点(".")操作符和箭头("->")操作符在C和Objective-C中的使用

但是我仍然不明白这个符号在Objective-C中的真正用例是什么?

这里是我正在谈论的例子:https://github.com/gnustep/gnustep-base/blob/master/Source/NSOperation.m -为什么所有这些字符串,如内部->锁都写在那里-为什么不直接使用ivars或点符号?


相关主题:object_setClass()的性能而不是分配一个指针。

从你的问题来看,不清楚你是否理解->操作符的作用。

GNUStep NSOperation源中的示例是使用ivar的。这就是->操作符的作用——对指针解引用并访问指定成员。

至于"为什么不使用点表示法?"显而易见的答案是他们不想通过访问器。通过访问器比直接访问要慢,在这种情况下,我们只是在处理"愚蠢的"内部状态,没有真正的好处。

那么在Objective-C代码中何时应该使用它呢?主要是当你通过指针访问一个结构时。很少需要直接访问另一个对象的实例变量。

可能就是这种情况。我在苹果的Reachability中看到了一个例子。m文件。

@implementation Reachability
{
    SCNetworkReachabilityRef _reachabilityRef;
}
+ (instancetype)reachabilityWithHostName:(NSString *)hostName
{
    ...
    if (reachability != NULL)
    {
        returnValue= [[self alloc] init];
        if (returnValue != NULL)
        {
            returnValue->_reachabilityRef = reachability;
        }
        ...
    }
    return returnValue;
}

所以你可以用它来调用一个全局变量在一个类方法中的对象

相关内容

  • 没有找到相关文章

最新更新