Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode Watchkit-共享代码-框架、应用程序扩展、应用程序组、添加目标还是仅复制文件?_Xcode_Swift_Watchkit - Fatal编程技术网

Xcode Watchkit-共享代码-框架、应用程序扩展、应用程序组、添加目标还是仅复制文件?

Xcode Watchkit-共享代码-框架、应用程序扩展、应用程序组、添加目标还是仅复制文件?,xcode,swift,watchkit,Xcode,Swift,Watchkit,我有一个现有的应用程序,我正在向其中添加一个手表应用程序。我有几个.swift文件,其中包含我的主应用程序中的代码,我需要用于watchkit应用程序(函数和一些常量等)。我对共享此代码的选项感到困惑-我如何知道尝试使用哪一个 创建应用程序组、我自己的框架、应用程序扩展?实际上,我刚开始将.swift文件复制到我的watchkit应用程序文件夹中,并注意到当您在弹出的对话框中将文件添加到Xcode时,您会看到“添加到目标”复选框,这让我思考-是否有办法在主应用程序部分更改我的.swift文件的属

我有一个现有的应用程序,我正在向其中添加一个手表应用程序。我有几个.swift文件,其中包含我的主应用程序中的代码,我需要用于watchkit应用程序(函数和一些常量等)。我对共享此代码的选项感到困惑-我如何知道尝试使用哪一个

创建应用程序组、我自己的框架、应用程序扩展?实际上,我刚开始将.swift文件复制到我的watchkit应用程序文件夹中,并注意到当您在弹出的对话框中将文件添加到Xcode时,您会看到“添加到目标”复选框,这让我思考-是否有办法在主应用程序部分更改我的.swift文件的属性,并在屏幕上勾选watchkit应用程序“添加到目标”在哪里

这似乎是一条路,对吧


感谢所有帮助

在apple watch应用程序和主应用程序之间共享代码,您需要使用共享代码创建一个框架。您自己说过,apple watch应用程序是一个全新的目标-它不会知道您现有的代码


创建应用程序组时,您还可以共享
NSUserDefaults:
使用
initWithSuiteName
,对于Coredata,您可以使用共享容器路径。

要在apple watch应用程序和主应用程序之间共享代码,您需要使用共享代码创建一个框架。您自己说过,apple watch应用程序完全是一个新的应用程序w目标-它不会知道你现有的代码


创建应用程序组时,您还可以使用
initWithSuiteName
共享
NSUserDefaults:
,对于Coredata,您可以使用共享容器路径。

我解决了这一问题,只需单击文件并将其添加到两个目标(iphone应用程序目标和apple watch扩展目标)

为了解决sharedapplication问题,我使用了以下方法:

#if (SL_TARGET_APP_EXTENSION == NO)
    [[UIApplication sharedApplication] .....
#endif 
SL_TARGET_APP_扩展是在apple watch扩展目标中添加的预处理器宏


希望有帮助。

我解决了这个问题,只需单击文件并将它们添加到两个目标(iphone应用程序目标和apple watch扩展目标)

为了解决sharedapplication问题,我使用了以下方法:

#if (SL_TARGET_APP_EXTENSION == NO)
    [[UIApplication sharedApplication] .....
#endif 
SL_TARGET_APP_扩展是在apple watch扩展目标中添加的预处理器宏


希望有帮助。

好的,明白了-谢谢。为了帮助我理解-为什么我不能将watchkit扩展名添加到文件的“目标成员”中“别管这个评论问题,我现在明白了——你是对的。我只是还没有拿到所有的东西。非常感谢。好的,明白了,谢谢。不过,为了帮助我理解-为什么我不能将watchkit扩展名添加到文件的“目标成员身份”?不要管这个评论问题,我现在明白了-你是对的。我只是还没有拿到所有的东西。非常感谢。我正在尝试此操作,但在添加到watch扩展目标的一个文件中遇到了这行代码的问题:let appDelegate=UIApplication.sharedApplication().delegate as appDelegate-它给了我一个错误“sharedApplication()不可用:请在适当的情况下使用基于视图控制器的解决方案。我现在正在阅读相关内容。呸,我想这意味着对于您的应用程序,您不需要手表应用程序的sharedApplication?如果需要,我该怎么办?您不能,请查看此链接:“访问sharedApplication对象,因此不能在该对象上使用任何方法“我仅使用此sharedApplication从核心数据中删除对象。这就是你用它的目的吗?您是如何解决此问题的?此库在watchkit中使用coredata,但无法访问sharedApplication:希望有帮助我在尝试此操作时,在我添加到watch扩展目标的一个文件中遇到了这行代码的问题:let appDelegate=UIApplication.sharedApplication().delegate作为AppDelegate-它给了我一个错误“sharedApplication()不可用:在适当的情况下使用基于视图控制器的解决方案。我现在正在阅读这方面的内容..呸,我想这意味着对于你的应用程序,你不需要手表应用程序的sharedApplication?如果我需要它,我该怎么办?你不能,看这个链接:访问sharedApplication对象,因此无法使用该对象上的任何方法“我仅使用此sharedApplication从核心数据中删除对象。这也是您碰巧使用它的原因吗?您是如何解决此问题的?此库使用watchkit中的coredata,而不访问sharedApplication:希望有帮助