在我的应用程序中,我创建了一个类MC_ApiUtility,它包含我在应用程序中使用的方法。基本上,它将包含通过Web服务器访问API的方法。我也有一些模特。
我更喜欢使用MC_ApiUtility&的单个实例。通过应用程序访问某些模型。我的意思是,我创建一次实例,使用它,更新它,在其他类中我也可以使用相同的更新对象实例。
在iOS中实现此目标的最佳方式是什么?
答案 0 :(得分:1)
听起来好像你正在寻找一个单身类。这是一个线程安全模式:
<强>接口强>
@interface MYSingeltonClass : NSObject
+ (MYSingeltonClass *) sharedManager;
- (void) doSomething;
@end
<强> Implmentation 强>
@implementation MYSingeltonClass
+ (MYSingeltonClass *) sharedManager
{
static MYSingeltonClass * sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedManager = [[MYSingeltonClass alloc] init];
});
return sharedManager;
}
- (id)init
{
self = [super init];
if (self) {
}
return self;
}
- (void) doSomething
{
}
@end
答案 1 :(得分:0)
1)使用Singleton设计模式 您将通过[MyClass sharedInstance]
在任何地方使用1个对象2)创建一个“帮助者”:只有类方法的类+(... )...而不是 - (... ).... 你将不会有任何对象,只有无限的方法(如果你需要属性,不要使用它)
答案 2 :(得分:0)
好吧,如果我理解你的问题......
我长时间使用这个模型(original):
您需要创建一个通用数据容器类AppDataObject
。这是一个数据容器对象的祖先类,您实际上可以用它来保存应用程序的全局变量。
在初始时,您需要将代码添加到创建空数据容器对象的应用程序委托中。
之后,您需要创建一个简单的简单协议AppDelegateProtocol
。此协议仅列出一种方法-theAppDataObject.
该方法允许您向应用程序委托询问其数据对象。
并创建AppDataObject
的子类,该子类实际上包含真实应用的数据。您可以在此处放置要在对象之间共享的信息。
使用protocol
表示应用中对象需要包含的唯一内容是AppDelegateProtocol
以及应用数据对象子类的标头。您没有#include
应用委托的标题,这样可以很好地将应用中的不同对象分开。
您可以下载project,ViewControllerDataSharing
,它使用上述方法在视图控制器之间共享信息。该项目使用导航控制器,并具有根视图控制器和第二个视图控制器。每个视图控制器都有一个UITextView
和一个滑块。该应用程序使用AppDataObject
在视图控制器之间传递这些字段的值。
此方法由DuncanC - iphonedevsdk论坛描述。这种方法确实为我节省了很多时间。