我对此感到困惑,已经在互联网上读到了一些东西,但我的问题是我需要了解如何正确使用singleton。我的问题是,在我的应用程序中的某个时刻,我会做下面的事情:
myVariable = [NSEntityDescription insertNewObjectForEntityForName:@"Entity"
inManagedObjectContext:context];
我需要保留myVariable
并在其他视图中使用它,我在某个地方读到,如果我想在所有视图中使用一个变量,这是最好的方法。我用了这个例子,但我真的不知道如何使用它,有人能给我解释一下吗?:
@interface DataLoader : NSObject {
NSString *someProperty;
//(i think i need myVariable here, and not type NSString)
}
@property (nonatomic, retain) NSString *someProperty;
+ (id)sharedManager;
@end
@implementation DataLoader
+(id)sharedInstance {
static dispatch_once_t p=0;
__strong static id _sharedObject = nil;
dispatch_once(&p, ^{
_sharedObject = [[self alloc]init];
});
return _sharedObject;
}
@end
如何设置myVariable,然后在其他视图中使用它?
问候
通常的方法是,每当控制器被推到导航堆栈上时,都让它们将变量传递给下一个,例如in prepareForSegue:
。只要给你的视图控制器一个强大的@property
来跟踪它
SomeViewController *nextVC = segue.destinationController;
nextVC.myVariable = self.myVariable;
这就是在许多带有托管对象上下文的苹果示例代码实例中所做的,这当然是一种很好的模式。