在目标c中正确使用singleton



我对此感到困惑,已经在互联网上读到了一些东西,但我的问题是我需要了解如何正确使用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;

这就是在许多带有托管对象上下文的苹果示例代码实例中所做的,这当然是一种很好的模式。

相关内容

  • 没有找到相关文章

最新更新