gpt4 book ai didi

iOS 常用对象

转载 作者:行者123 更新时间:2023-11-28 22:30:19 24 4
gpt4 key购买 nike

我正在编写一个 iOS 应用程序,其中有一个应用程序内的所有 View 都需要访问的公共(public)对象。

我一直在(第一个 View Controller 的)viewDidLoad 事件中创建和初始化对象,然后将对此对象的引用传递给需要它的所有其他 View 。这似乎不是正确的做事方式,感觉就像我在某种程度上打破了 MVC 模式,因为我依赖这个特定的 View 总是第一个加载以便设置整个应用程序需要的对象。

我现在已经修改了我的应用程序以在 appDelegate“didFinishLaunching...”中进行基本对象创建和初始化。现在可以使用了,我可以从所有其他 View 访问这个公共(public)对象,而无需将引用从一个 View 传递到另一个 View 。

在我走得太远之前,我希望得到人们的意见,看看这是否是正确的做事方式,或者我是否应该做其他事情?抱歉,如果这看起来像是一个微不足道的问题,我只是在学习并且想学习如何正确地做事。

提前致谢:-)

最佳答案

在不重复已经回答的内容的情况下,我建议您创建自己的 Singleton 对象来保存您的“全局变量”,这样您就不会用它弄乱您的 AppDelegate。

@interface MyGlobalDataController : NSObject

@property (nonatomic, strong) MyData *myData;

+(MyGlobalDataController *)sharedInstance;

@end

@implementation MyGlobalDataController

static MyGlobalDataController *MyGlobalDataControllerSharedInstance = nil;

- (id)init {
self = [super init];
if (self) {
// do whatever needs doing
}
return self;
}

+(MyGlobalDataController *)sharedInstance {
@synchronized(self) {
if (MyGlobalDataControllerSharedInstance == nil) {
MyGlobalDataControllerSharedInstance = [[MyGlobalDataController alloc] init];
}
}
return MyGlobalDataControllerSharedInstance;
}

@end

您第一次访问 sharedInstance 时,会调用 init,因此您不必担心那里的时间问题。

关于iOS 常用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17637706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com