【发布时间】:2013-03-15 18:26:06
【问题描述】:
我刚刚清楚地解释了“->”符号的含义:Dot (".") operator and arrow ("->") operator use in C vs. Objective-C
但我还是不明白 Objective-C 中这种表示法的真正用例是什么?
这是我正在谈论的示例:https://github.com/gnustep/gnustep-base/blob/master/Source/NSOperation.m - 为什么所有这些字符串,如 internal->lock 都写在那里 - 为什么不只使用 ivars 或点符号?
相关话题:Performance of object_setClass() instead of assigning isa pointer.
【问题讨论】:
-
那个答案包罗万象,还有什么你想知道的>
-
@AnoopVaidya,引用的文章没有描述用例,尤其没有描述为什么一种表示法应该优于另一种表示法。我想,我确实在这里提出了有意义的问题。
-
我的猜测是作者不想使用点符号来避免调用访问器方法的副作用 + 他们希望能够重新定义“内部”指针指向他们将来需要的任何东西,所以 ->正是提供了这种灵活性
-
@Vladimir,对不起,我不太了解您的“调用访问器方法的副作用”和“能够重新定义指向他们未来需要的任何东西的'内部'指针”。您能否在答案中格式化这些您的观点?我会很感激的!
-
这些内部是一堆复杂的宏,用于为不同的编译器和配置实现非脆弱的东西。我觉得你最好看点别的。事实上,GNUstep 源代码是一个开始学习东西的坏地方,自从计算机运行缓慢以来,他们就竭尽全力优化东西。
标签: objective-c notation