在iphone中全局访问整数和字符串?

时间:2009-07-03 11:31:32

标签: objective-c iphone xcode

我想访问一个整数和一个字符串从一个类到所有其他类? 最好的方法是什么? 我想在程序中的任何位置增加值,然后想要在声明的类中更新它们。

任何想法如何实现这个???

2 个答案:

答案 0 :(得分:5)

这是关于singletons的问题(以及好的答案)。

您也可以像frankodwyer建议的那样使用app delegate,并使用以下方式从任何地方访问:

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]

答案 1 :(得分:2)

您可以设置应用委托的整数和字符串属性,并将对代理的引用传递给您的视图。我自己做了类似的事情,但说实话,这是一个痛苦,也有一点点容易让所有观点都可以使用app代理。

或者(这可能更好),您可以将单例类(google为单例模式)声明为您的一个数据类,并将整数/字符串作为其属性。然后,您可以从程序中的任何位置访问单例的getter / setter。如果您有多个线程,则需要格外小心,