我有一个我在2012年创建的iOS应用程序(单视图应用程序)。现在,我想在解决方案中添加“今日扩展”目标。我已将Todays Extension添加为单独的目标。我面临的问题是我无法使用我在原始项目中添加的任何文件。
即使我导入标题,我仍然无法实例化属于我原始项目的类。我如何在两个目标之间共享课程。
主要问题:
主要问题是我在默认目标中创建了一个SQLITE数据库。数据库存储在主应用程序的Documents目录中。问题是Todays Extension无法访问该目录,即使我在NSUserDefaults中保存路径,它仍然无法访问它。
答案 0 :(得分:0)
您必须在检查员中检查文件,以便与今日扩展程序目标共享。
选择.m文件,在右侧col(检查员)中,您可以检查"目标会员资格"的文件。只需将其添加到您的扩展程序。
(在上图中,Weather Live - Suisse是今天的扩展,另一个是目标规则应用程序)。
答案 1 :(得分:0)
根据Zubair的链接:
打开文档时,要获取NSURL,请使用例如:
NSURL *storeURL ;
storeURL= [[[NSFileManager defaultManager]
containerURLForSecurityApplicationGroupIdentifier:@"group.com.yourcompany.app"]
URLByAppendingPathComponent:@"yourdatabase.sqlite"];
使用通用框架并不是绝对必要,但它避免了代码重复。
答案 2 :(得分:-1)
您必须创建一个嵌入式框架,以在您的应用扩展程序及其包含应用之间共享代码。
要启用数据共享,请使用Xcode或开发人员门户为包含应用及其包含的应用扩展程序启用应用组。
以下是Apple文档链接
Handling Common Scenarios in App & extentions
描述了你需要的一切。