如果模型对象文件有很多依赖项,我如何将它导入到我的手表扩展中
How can I import a model object file into my watch extension if it has a lot of dependencies
我正在为一个现有的 iOS 应用程序构建一个配套应用程序,该应用程序非常大并且有一些过时的部分。 iOS 应用程序中有一个列表,其中包含可以说是 ClassA 类型的项目。通过将这些对象归档到磁盘并在需要时读回来处理持久性。
我将保存位置更改为手表应用程序可以读取的共享容器中,但手表扩展无法理解列表,因为它不知道 ClassA。很公平。我在目标设置中将 ClassA.m 添加到 by Compile Sources,然后由于与 ClassA 相关的导入和依赖项,我们有大量错误。
我开始添加越来越多的 类,不久之后它就在整个项目的所有文件中抛出错误,这些错误似乎与 ClassA 无关。
所以现在我想知道这是否是我正在尝试做的事情所必需的。我只想在我的手表扩展中读取 ClassA 类型对象的存档,我是否需要将 iOS 应用程序的一半导入手表扩展中?
如果我对你的理解正确的话,你的 ClassA
是一个模型 class,它存储一些数据并对其进行处理。在这种情况下,我建议您重构 ClassA
,这样它就只有不依赖于其他 class 的属性和方法,并将所有其他方法移动到 class 扩展(或几个扩展名(如果适用))。
示例:
之前:
class DependentClass {
func goodFunction(a: Int) -> Int{ return a * 5 }
func dependantFunction(b: AnotherDependantClass) -> AnotherDependantClass2{ ... }
}
之后:
class DependentClass {
func goodFunction(a: Int) -> Int{ return a * 5 }
}
//In another file
extension DependentClass{
func dependantFunction(b: AnotherDependantClass) -> AnotherDependantClass2{ ... }
}
编辑
Objective-C 中的示例:
之前:
//DependentClass.h
@class AnotherDependantClass;
@class AnotherDependantClass2;
@interface DependentClass : NSObject
-(int)goodFunction:(int)a;
-(AnotherDependantClass2 *)dependantFunction:(AnotherDependantClass *)a;
@end
之后:
//DependentClass.h
@interface DependentClass : NSObject
-(int)goodFunction:(int)a;
@end
//DependentClass+Dependencies.h
@class AnotherDependantClass;
@class AnotherDependantClass2;
@interface DependentClass (Dependencies)
-(AnotherDependantClass2 *)dependantFunction:(AnotherDependantClass *)a;
@end
之后,将您的 DependentClass.m
添加到手表扩展中,并在适当的地方添加 #import "DependentClass+Dependencies.h"
。希望这会有所帮助。
我正在为一个现有的 iOS 应用程序构建一个配套应用程序,该应用程序非常大并且有一些过时的部分。 iOS 应用程序中有一个列表,其中包含可以说是 ClassA 类型的项目。通过将这些对象归档到磁盘并在需要时读回来处理持久性。
我将保存位置更改为手表应用程序可以读取的共享容器中,但手表扩展无法理解列表,因为它不知道 ClassA。很公平。我在目标设置中将 ClassA.m 添加到 by Compile Sources,然后由于与 ClassA 相关的导入和依赖项,我们有大量错误。
我开始添加越来越多的 类,不久之后它就在整个项目的所有文件中抛出错误,这些错误似乎与 ClassA 无关。
所以现在我想知道这是否是我正在尝试做的事情所必需的。我只想在我的手表扩展中读取 ClassA 类型对象的存档,我是否需要将 iOS 应用程序的一半导入手表扩展中?
如果我对你的理解正确的话,你的 ClassA
是一个模型 class,它存储一些数据并对其进行处理。在这种情况下,我建议您重构 ClassA
,这样它就只有不依赖于其他 class 的属性和方法,并将所有其他方法移动到 class 扩展(或几个扩展名(如果适用))。
示例:
之前:
class DependentClass {
func goodFunction(a: Int) -> Int{ return a * 5 }
func dependantFunction(b: AnotherDependantClass) -> AnotherDependantClass2{ ... }
}
之后:
class DependentClass {
func goodFunction(a: Int) -> Int{ return a * 5 }
}
//In another file
extension DependentClass{
func dependantFunction(b: AnotherDependantClass) -> AnotherDependantClass2{ ... }
}
编辑
Objective-C 中的示例:
之前:
//DependentClass.h
@class AnotherDependantClass;
@class AnotherDependantClass2;
@interface DependentClass : NSObject
-(int)goodFunction:(int)a;
-(AnotherDependantClass2 *)dependantFunction:(AnotherDependantClass *)a;
@end
之后:
//DependentClass.h
@interface DependentClass : NSObject
-(int)goodFunction:(int)a;
@end
//DependentClass+Dependencies.h
@class AnotherDependantClass;
@class AnotherDependantClass2;
@interface DependentClass (Dependencies)
-(AnotherDependantClass2 *)dependantFunction:(AnotherDependantClass *)a;
@end
之后,将您的 DependentClass.m
添加到手表扩展中,并在适当的地方添加 #import "DependentClass+Dependencies.h"
。希望这会有所帮助。