我想将现有的 iOS 应用程序项目拆分为一个静态库和一个应用程序项目。
由于现有的应用程序项目已多次复制到具有不同资源(图形、图标等)和设置的全新实例中。
我发现一旦更新了核心项目,就很难跨不同的实例进行维护。
所以我把核心项目变成了一个带有模型、视图和第三方库的静态库。
另一个项目包含仅包含自定义资源和应用程序设置的应用程序部分。
问题是静态库中的类如何从应用程序项目和主应用程序项目调用库中的类获取应用程序设置。
有什么好的做法和工具吗?
我想将现有的 iOS 应用程序项目拆分为一个静态库和一个应用程序项目。
由于现有的应用程序项目已多次复制到具有不同资源(图形、图标等)和设置的全新实例中。
我发现一旦更新了核心项目,就很难跨不同的实例进行维护。
所以我把核心项目变成了一个带有模型、视图和第三方库的静态库。
另一个项目包含仅包含自定义资源和应用程序设置的应用程序部分。
问题是静态库中的类如何从应用程序项目和主应用程序项目调用库中的类获取应用程序设置。
有什么好的做法和工具吗?
主应用程序项目可以通过导出的头 (.h) 文件使用您的静态库类。我建议在这里阅读一些关于它们的信息:
http://developer.apple.com/library/ios/#technotes/iOSStaticLibraries/Articles/creating.html
并在这里创建静态库:
http://www.icodeblog.com/2011/04/07/creating-static-libraries-for-ios/
至于为您的静态库提供特定于应用程序的设置,听起来您的静态库可能需要包含ApplicationSettings
协议或类似内容,可以将其提供给静态库以供任何需要它的调用使用。您的协议可以为您的应用程序拥有的任何已知属性定义 getter/setter。
@protocol ApplicationSettings
- (BOOL)isUserReallyAwesome;
- (void)setIsUserReallyAwesome:(BOOL)awesome;
@end
然后你可以静态配置这个对象的一个实例,或者你可以提供给每个需要它的静态库方法:
- (void)someStaticLibraryMethodWithArg:(NSString *)arg settings:(id<ApplicationSettings>)settings { ... }