我是Objective-C的新手,并且正在处理一个有多个viewController文件的应用程序。我需要访问在一个文件中设置的变量值才能在其他文件中访问。我该如何实现呢。
我在做什么,我创建了一个类Globals.m并在其中声明了变量。
#import <Foundation/Foundation.h>
@interface Globals : NSObject
@property NSString* firstName;
@property NSString* lastName;
@property NSString* emailId;
@end
我的问题是: 1.上述声明会使这些变量保留在不同文件中的值吗?
答案 0 :(得分:2)
我可能会建议使用Singleton模式,因为它允许您通过应用程序保存类的实例。因此,您可以在一个类中设置firstName
并将其设置在另一个类中。
<强> MySingleton.h 强>
@interface MySingleton : NSObject
// Our properties we want to set.
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSString *emailName;
// etc...
// Our class method for getting the shared instance.
+ (MySingleton *)sharedInstance;
@end
<强> MySingleton.m 强>
#import "MySingleton.h"
@implementation MySingleton
+ (MySingleton *)sharedInstance
{
static dispatch_once_t pred = 0;
static id sharedObject = nil;
dispatch_once(&pred, ^{
sharedObject = [[self alloc] init];
});
return sharedObject;
}
@end
然后在您的其他课程中,您需要做的就是导入MySingleton
课程并执行以下操作:
MySingleton *singleton = [MySingleton sharedInstance];
[singleton setFirstName:@"Bob"];
有关单例模式和其他设计模式的更多信息,请参阅iOS Design Patterns中的教程。另外一个好的读物是Correct Singleton Pattern Objective C (iOS)?