用接口控制器重复架构x86_64的符号
我开始用WatchKit开发我的新应用程序。
在WatchKit扩展中,我有2个接口控制器。 当我在这两个接口控制器的两个.h
文件中导入我的AppDelegate
,我收到以下错误:
'Id: 30 duplicate symbols for architecture x86_64'
这30个符号来自我的appDelegate.h
当我从两个界面控制器的任何一个.h
文件中删除“ #Import "AppDelegate.h"
,问题就消失了。
但是,我使用在AppDelegate.h
中定义的值出现新问题
最后,我不能在这两个文件中导入AppDelegate.h
,但是如果我没有(这certificate我不导入两次AppDelegate.h
)会出现新的问题。
注意:我做了与我的应用程序的iPhone版ViewController
一样,一切工作正常。
从问题可能来自哪里的任何暗示?
谢谢
编辑为bgilham :
– 看不到“ .m
”文件
– 我不使用-Obj
链接器标志
在iOS和WatchKit目标中有不同的名称
我使用相同的常量(在appdelegate.h
定义)
我认为这是关系到AppDelegate.h
因为它只发生在这个文件,而不是另一个。
几件事情来检查:
- 确保你没有错误地导入一个
.m
文件。 - 检查你可能无意中导入了两次的任何地方。
- 你正在使用
-Objc
链接器标志? 这会导致链接器加载库中定义Objective-C类或类别的每个对象文件。 - 你的iOS目标和 WatchKit目标中是否有同名文件?
- 任何具有相同名称的常量?
我相信你正在使用xcode 6或7.问题是,在这些新版本中,variables的名称必须与每个类不同。
我build议你在名称末尾添加一个不同的数字来replace每个variables名称。