【发布时间】:2025-12-19 03:20:14
【问题描述】:
我想从一个类访问一个整数和一个字符串到所有其他类? 最好的方法是什么? 我想增加程序中任何地方的值,然后想在声明的类中更新它们....
知道如何实现这一点吗???
【问题讨论】:
标签: objective-c iphone xcode
我想从一个类访问一个整数和一个字符串到所有其他类? 最好的方法是什么? 我想增加程序中任何地方的值,然后想在声明的类中更新它们....
知道如何实现这一点吗???
【问题讨论】:
标签: objective-c iphone xcode
这是一个关于 singletons 的问题(以及很好的答案)。
您还可以按照 frankodwyer 的建议使用应用委托,并使用以下方式从任何地方访问它:
id delegate = [[UIApplication sharedApplication] delegate];
为了易于使用和类型安全,我使用这样的类别:
// put his in your delegate header file
@interface UIApplication(MyAppAdditions)
+ (MyAppDelegate*)sharedDelegate;
@end
// put his in your delegate implementation file
@implementation UIApplication(MyAppAdditions)
+ (MyAppDelegate*)sharedDelegate {
return (MyAppDelegate*)[[self sharedApplication] delegate];
}
@end
现在您可以从任何地方访问您的应用委托:[UIApplication sharedDelegate]
【讨论】:
您可以使应用程序委托的整数和字符串属性,并将对委托的引用传递给您的视图。我自己也做过这样的事情,但说实话,让应用程序委托对所有视图都可用是一种痛苦并且容易出错。
或者(这可能更好),您可以声明一个单例类(谷歌单例模式)作为您的数据类之一,并让您的整数/字符串成为它的属性。然后,您可以从程序中的任何位置访问单例的 getter/setter。但是,如果您有多个线程,则需要格外小心,
【讨论】: