Ios 从mac到笔记本电脑的Xcode复制显示错误

Ios 从mac到笔记本电脑的Xcode复制显示错误,ios,xcode,Ios,Xcode,我主要是在我的MAC电脑上开发,有时我会把我的项目文件放在一个U盘上,随身带着我的macbook,这样我就可以在不在家的时候处理事情了 到目前为止,它工作得很好,我收到了一系列语义错误,说: "editSetting.settingAnimateSelection = @NO;" 错误:“在“Setting*”类型的对象上找不到属性“editSetting.settingAnimateSelection” settingAnimateSelection以及我添加到CoreData结构中的其他两

我主要是在我的MAC电脑上开发,有时我会把我的项目文件放在一个U盘上,随身带着我的macbook,这样我就可以在不在家的时候处理事情了

到目前为止,它工作得很好,我收到了一系列语义错误,说:

"editSetting.settingAnimateSelection = @NO;"
错误:“在“Setting*”类型的对象上找不到属性“editSetting.settingAnimateSelection”

settingAnimateSelection以及我添加到CoreData结构中的其他两项,我在mac上生成了NSManagedSubclass。当我添加它们时,它们在

setting.h
@property (nonatomic, retain) NSNumber * settingAnimateSelection;
也在

setting.m
@dynamic settingAnimateSelection;
除了一大堆其他属性之外,没有任何关系。 一切都在iMAC上运行,但一旦我将项目文件夹复制到MacBook上, 它将不再运行,并显示所有这些语义错误,告诉我它找不到它们

我已经做了清理,并尝试从模拟器和手机中删除我的应用程序,但没有任何帮助


有什么想法吗?谢谢大家!

解决方案:您的源代码树中可能有多个同名文件的实例。请搜索这些实例并从Xcode项目中删除重复的文件(可能还有树)

原因:重新生成NSManagedSubclass文件时存在陷阱

新生成的文件(如
setting.h
和co)可能与旧文件不在同一个目录中(常见)。这些文件很容易最终位于嵌套目录中,或者被用户移动到不同的位置

如果是,则在源目录树中有多个同名的源文件版本

奇怪的是,您随时可以用UI打开的给定源文件不一定就是编译器找到的源文件

如何避免NSManagedSubclass陷阱

Xcode>编辑器>创建NSManagedObject子类…>选择包含您想要管理的实体的数据模型>导航到dest目录(您应该可以看到您的旧文件)>[创建]

您应该会收到警告:以下文件已存在并将被替换:…

附加注释

  • 确保您选择了正确的目标>设备>操作系统。如果经常在新Xcode上打开时重置
  • +1用于存储库建议。您可以在本地使用git或svn。但这对当前的问题几乎没有影响

  • 最好的解决方案是使用托管版本控制系统,然后进行签出、提交和合并

    默认情况下,新项目会获取本地存储库,即项目的本地存储库。其他选项包括停止使用本地存储库或保存快照,从管理器导出快照,然后将该快照共享到其他计算机


    <> Po>从长远来看,托管存储库是最麻烦的。

    你好。这不是一个答案。但是你真的应该考虑使用版本管理系统。我不是在为亚特兰西工作,而是在工作中使用他们的解决方案。如果你有互联网连接,你可以为他们的比特桶服务设置一个免费的5个座位的回购协议。如果你不想使用命令行git,你甚至可以使用类似于源代码树的UI客户端。如果答案对你有用,你可以勾选这个答案,让别人知道。谢谢你。你好,谢谢你的建议。我已经检查了tar获取和所有构建设置,都是一样的。这不是问题……还有其他想法吗?您是否尝试过“清理构建文件夹…”选项-shift-command-K?关于“删除派生数据”Xcode>Window>Organizer>Projects>Derived Data[Delete…]是的,我两次都试过了,仍然有11个语义问题。完全不知道为什么。还有其他目录或临时文件可以删除吗?明白了!当您重新生成NSManagedSubclass文件时,新的
    设置.h
    可能与旧的不在同一个目录中。在原始的Xcode项目中,您的项目ct构建和指向正确文件的链接(即使您可能有2套)但是当你在另一台机器上打开同一个项目时,Xcode会被混淆,可能会使用旧的
    设置.h
    ,而不是新的。你在编辑器中看到的
    设置.h
    实际上不是编译器找到的
    设置.h
    。非常感谢@gothic dev,这就是问题所在。出于某种原因,这里有du在我的项目目录中我的setting.h和setting.m的副本。我记得在某个时候,我在Xcode中移动了文件并组织了我的项目(创建新文件夹等)由于某些原因,如果我移动文件时Xcode生成了副本并保留了原始文件,或者如果我重新生成副本并将输出放入新目录,我最终得到了副本。不确定,但这解决了我的问题。再次感谢solo花时间进行调查,非常感谢