如何解决iOS:有关应用程序设计以及如何在viewController之间共享NSDictionary的简单问题
|| 我有一个简单的设计问题。这段代码在我的appDelegate中。我用它来加载NSDictionary类别中的所有图像。接下来,我将字典传递给主NavigationViewController的init方法。接下来,我将字典通过NavigationViewController推送的所有viewController,因为我到处都使用相同的图标。 我想知道这是否是正确的方法,还是我只是在浪费内存。换句话说,我应该将字典通过viewControllers传递,还是应该使用单例..或什么?我目前采用这种方法的原因是,我没有从viewControllers到应用程序委托的任何引用。//load categories pictures
NSArray *categoriesKeys = [[NSArray alloc] initWithObjects:
@\"comedy\",@\"commercial\",@\"education\",@\"family\",@\"media\",@\"music\",@\"performing\",@\"sport\",nil];
categories = [[NSMutableDictionary alloc] init];
for (Nsstring *categKey in categoriesKeys) {
UIImage * categImage = [UIImage imageNamed:[[@\"icons/\" stringByAppendingString:categKey] stringByAppendingString:@\".png\"]];
[categories setobject:categImage forKey:categKey];
}
更新:
viewController初始化方法
FlickrAppDelegate* appDelegate = [UIApplication sharedApplication].delegate;
categories = appDelegate.categories;
categKeys = appDelegate.categoriesKeys;
解决方法
将所有代码放入一个函数中的appDelegate中,并在applicationDidFinishLaunching方法中调用该函数。像这样在应用程序中的任何地方访问字典
appNameDelegate* appDelegate = [UIApplication sharedApplication].delegate;
[appdelegate.categories objectForKey:@\"WhatEver\"];
, 我可能会创建一个Singleton。许多人喜欢在AppDelegate中放置共享代码,但是随后该文件变得混乱,并且不清楚整个文件中发生了什么。将Singleton专用于此逻辑可以分离代码并使更改更容易。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。