我正在为现有的iOS应用程序构建一个配套应用程序,该应用程序非常大且包含一些过时的片段。iOS应用程序中有一个列表,其中包含ClassA类型的项目。通过将这些对象归档到磁盘并在需要时读出来处理持久性。
我将保存的位置更改为手表应用程序可以读取的共享容器中,但是手表扩展名无法理解列表,因为它不了解ClassA。很公平。我在目标设置中将“ ClassA.m”添加到“通过编译源”,然后由于导入和与ClassA相关的依赖关系而出现大量错误。
我开始添加越来越多的类,不久之后,它就在整个项目中的文件中引发了似乎与ClassA无关的错误。
因此,现在我想知道这是否是我想要做的所有工作。我只想能够在我的手表扩展程序中读取ClassA类型的对象的档案,是否需要将一半的iOS应用导入到手表扩展程序中?
如果我理解正确,那么您ClassA
就是一个模型类,它存储一些数据并对其进行处理。在这种情况下,我建议您进行重构ClassA
,使其仅具有不依赖于其他类的属性和方法,并将所有其他方法移至类扩展(或适当时扩展几个扩展)。
示例:
之前:
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中的EDIT示例:
之前:
//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"
在适当的地方添加。希望这会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句