Objective c 这行代码的目的是什么?
考虑一下Objective-C的这个片段:Objective c 这行代码的目的是什么?,objective-c,syntax,Objective C,Syntax,考虑一下Objective-C的这个片段: NSString *elementString = nil; if(elementText != NULL) { elementString = [NSString stringWithCString:(char*)elementText encoding:NSUTF8StringEncoding]; [elementString self]; xmlFree(elementText); } 我知道[elementStri
NSString *elementString = nil;
if(elementText != NULL) {
elementString = [NSString stringWithCString:(char*)elementText encoding:NSUTF8StringEncoding];
[elementString self];
xmlFree(elementText);
}
我知道[elementString self]
返回对elementString
的引用。我的问题是,既然这里没有使用返回值,为什么要调用[elementString self]
这个模式在我维护的应用程序中的XML解析例程中重复了很多次。如果它只发生一次,我会怀疑有人做了傻事,但鉴于它的流行,我想知道我错过了什么
编辑:本尼迪克特·科恩给出的答案是正确的。
elementString
变量从未使用过。此模式的大多数实例都隐藏在数百行方法中,我没有看到它从未被使用过。如果没有编译器,将发出一条警告,elementString
未被使用
编辑:实际上,由于elementString
的声明和设置方式,我认为这不会引起警告
编辑:刚刚测试过<代码>[elementString self]未抑制警告。我唯一的猜测是,它曾经是用来抑制警告的,但是代码已经被重构,不再需要了。您能提供更多的代码片段吗?否则,您引用的代码行只是禁止编译器警告。我以前从未见过这种情况。Jonathan Grynspan:当我说“流行”的时候,我的意思是在这个应用程序中,我在维护。这种模式的实例存在于125个不同的类文件中。看起来编写该代码的人正在使用它……事实上。它也被大量复制和粘贴。