在我的应用程序中,某些视图控制器中有很多视图控制器,我想在其他类中使用一些变量.my 变量在应用程序委托文件中不存在,所以我可以使其全局以在我的应用程序中的每个位置使用吗?
在我看来,使用单例模式怎么样?因此,当您想使用该类的变量时,只需获取实例,然后使用变量。
@interface MySingletonViewController : UIViewController
{
//here your variables
int globalVariables;
}
@property (nonatomic, assign) int globalVariables;
+ (MySingletonViewController *)sharedSingleton;
@end
@implementation MySingletonViewController
@synthesize globalVariables;
static MySingletonViewController *sharedSingleton = nil;
+ (MySingletonViewController *)sharedSingleton
{
@synchronized(self)
{
if (sharedSingleton == nil)
sharedSingleton = [[MySingleton alloc] init];
return sharedSingleton;
}
}
@end
UIViewController 实际上是类的,所以我们可以这样做:)希望这有帮助。
当然可以,但是在整个应用程序中使用全局变量绝对是破坏的架构设计。
作为基于 C 的 Objective-C,您可以在实现部分之外的任何 *.m 文件中定义变量(在您的情况下 - 指向类的指针)为:
MyVeryOwnClass *g_MyVeryOwnClassPointer = nil;
并作为以下方式访问它:
extern MyVeryOwnClass *g_MyVeryOwnClassPointer;
/* do some operations with your pointer here*/
或者将外部声明移动到头文件。
PS:您可以使用单例。它们不是最好的解决方案,但比使用原始变量更好。