财产有先前的声明

时间:2014-10-15 15:30:19

标签: ios objective-c xmpp afnetworking

我尝试将XMPP框架添加到我的ios项目中,但我无法使其工作。事实证明我添加错误,所以我尝试删除它,现在没有XMPP我收到这些错误: 提前致谢! enter image description here

8 个答案:

答案 0 :(得分:14)

由于CocoaPods,也可能发生这种情况。我在版本cocoapods-0.39.0时出现此问题,目前已降级为cocoapods-0.38.2修复此问题。

答案 1 :(得分:5)

您的项目中有两份AFNetworking副本。删除其中一个。

...或者更好的是,使用CocoaPods将AFNetworking和您的XMPP框架集成到您的项目中。

答案 2 :(得分:2)

这可能是由于添加了许多相同的属性 code shotcut

答案 3 :(得分:2)

我将Obj-c中的类重构为Swift后出现此错误,虽然类名称不同但方法名称保持不变,因此导致"属性具有先前声明"错误。但只有当我尝试在不同的目标上运行应用程序时。

所以我只是从项目中删除重构的类并清理项目,为我解决问题。

答案 4 :(得分:1)

其中一个原因是您有重复的.h或.m文件。
临时解决方法是只在Xcode中选择项目,右键单击并点击“在Finder中显示”。
搜索给你错误的文件。
你会找到两个这个名字的文件。
只需删除一个就可以了。

答案 5 :(得分:1)

当我将整个XCode项目复制并粘贴到另一个位置并在那里打开时,我遇到了同样的问题。可能有项目设置和类的默认路径。尝试创建一个新项目,并将每个类单独复制并粘贴到新项目中,并正确创建。

答案 6 :(得分:1)

错误是您的界面类的重复接口定义。这对我有用duplicate interface declaration for class。不知何故,你设法导入.h文件两次。检查以确保始终使用#import而不是#include。

答案 7 :(得分:0)

我认为这不会解决您的特定问题,但是对于通过Google到达此地的其他人来说,该问题是由自定义框架中嵌入式类的名称冲突引起的。导致此类错误的代码示例:

public class Car: NSObject {
    public class Wheel: NSObject {
    }
}

public class Truck: NSObject {
    public class Wheel: NSObject {
        // "Wheel" class is duplicated and even though it's embedded in another class,
        // it will still result in a collision in a ".h" file
    }
}

我实际上不确定从NSObject继承是否会在此处进行任何更改。