我正在尝试实现一个能够访问所有类的静态全局字典。除了单例还有其他方法吗?我在堆栈溢出中尝试了很多我无法得到任何解决方案有人帮助我解决这个问题。 这是我的字典代码。
NSDictionary *colors = @{@"black": [UIColor blackColor], @"pink": [UIColor purpleColor], @"blue": [UIColor blueColor], @"red": [UIColor redColor], @"yellow": [UIColor yellowColor]};
我在我的类(class)中使用这样的用户默认值。
NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@"colordatafromthisvc"];
UIColor *color = colors[savedValue] ?: [UIColor orangeColor];
_nxtbtnlet.backgroundColor = color;
最佳答案
为此目的使用单例一直被认为是最好的。
如果你被迫不使用单例,你可以使用:
选项 1
在.h文件中:
extern NSDictionary *GlobalDictionary;
在.m文件中:
NSDictionary *GlobalDictionary;
然后,在相应的 .m 文件的初始化函数(或应用程序启动后肯定会调用的任何其他方法)中,您可以:
GlobalDictionary = @{@"black": [UIColor blackColor], @"pink": [UIColor purpleColor], @"blue": [UIColor blueColor], @"red": [UIColor redColor], @"yellow": [UIColor yellowColor]};
您现在可以从任何包含其头文件的文件访问 GlobalDictionary,如下所示:
UIColor *color = [GlobalDictionary objectForKey:@"blue"];
选项 2
考虑将 UIColor 本身保存到 UserDefaults。
关于ios - 有什么方法可以使用全局静态字典来访问 objective-c ios 中的所有 View Controller 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52982871/