Kir*_*n S 28 iphone objective-c xcode4.2
我最近升级到Xcode 4.2,它开始用我的代码给我这么多的语义警告......
其中一个是在我的单例类中"在'release'的实现中返回类型上的冲突的分布式对象修饰符".
我在某处读过 - (单向无效)发布; 发布此警告,但一旦我把它放在我的代码中我开始得到编译错误作为"重复发布声明"不知道为什么,如果你试图找到它在这一行显示的第二个声明
SYNTHESIZE_SINGLETON_FOR_CLASS(GlobalClass);
更新:这是 它解释的帖子 - (单向无效)发布;
如何摆脱这个警告"在发布的实现中返回类型上的冲突的分布式对象修饰符"?为什么会发生这种情况?
Pau*_*ory 50
您链接到的帖子包含标题中问题的解决方案,并解释了为什么它发生在您身上.
但是,从阅读您的问题看来,您的新问题似乎是由于错误地应用了该帖子答案中的好建议.我相当肯定你加了这条线
- (oneway void) release {}
Run Code Online (Sandbox Code Playgroud)
在.m文件中而不是修改现有文件
- (void) release {
Run Code Online (Sandbox Code Playgroud)
加上额外的单词"oneway".
这就是您获得"重复发布声明"的原因.是的,这很令人困惑,因为它是一个重复的定义,无形中创建了重复声明.但我刚尝试以错误的方式做到这一点,我得到了"重复声明"的消息.
我得到的印象可能是错误的,你没有意识到你实际上有一个发布方法,特别是当你认为添加该行将"发布此警告"时.
不要过于字面地记录所有错误,并且总是试着想一下某人可能真正意味着什么,因为它通常与他们所说的不同,但是请尝试理解代码中的内容,即使是在你从架子上下来的课程中也是如此. .
为了解决其他提出的问题,你压倒释放的原因是因为它是一个通常不会发布的单身人士.您可能只在代码中有一个定义,这就足够了.
Jonathan Grynspan关于在声明和定义上指定的内容广泛有效(实际上是问题的根源),但重要的是要认识到在这个特定情况下,声明是由Apple的基础代码改变的.
因此,如果还不清楚,修改XCode发现问题的行,以包含单词.
归档时间: |
|
查看次数: |
8563 次 |
最近记录: |