【发布时间】:2013-02-28 22:14:39
【问题描述】:
我想使用双指针,我试图这样声明。
NSString **a;
但是,Xcode 向我显示了错误“指向非常量类型 'NSString *' 的指针没有明确的所有权”并且无法编译。
我终于想做这个了。
NSString **a;
NSString *b = @"b";
NSString *c = @"c";
a = &b;
*a = c;
NSLog(@"%@",b);//I wanna see "c"
请告诉我任何建议。
【问题讨论】:
-
您显示的代码完全合法。如果没有更多上下文,我认为我们无法回答您的问题。
-
@CarlNorum 除非自动-"smartass"-reference-counting 出现在图像中...然后它使编译器抱怨每一个小动量...
-
哦,我明白了...忘记了。 ARC 比我停止编写任何 Objective-C 代码时更新。
-
@CarlNorum 你很幸运......我们可以同意这里的答案应该是“关闭 ARC”吗?
-
请注意,在 Objective-C 中使用
**s 来引用对象是非常罕见的。此外,@H2CO3,ARC 的目标之一是使不常见、脆弱的编码模式(通常会导致错误)在声明中非常精确。这是其中一种情况。 “关闭 ARC”不是建设性的建议;我们中的许多人已经完全接受了 ARC,并且看到代码的脆弱性大大降低,这正是因为编译器能够在其分析中更加彻底。
标签: ios objective-c variables automatic-ref-counting double-pointer