在目标c中正确使用单例

时间:2013-08-09 12:22:38

标签: core-data singleton global-variables

我迷失了这个,已经在互联网上阅读了一些东西,但我的问题是我需要了解如何正确使用单身人士。我的问题是,在我的应用程序的某些时候,我做的是以下内容:

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,然后在另一个视图中使用它?

此致

1 个答案:

答案 0 :(得分:1)

通常的方法是让控制器在将变量推到导航堆栈上时将变量传递给下一个变量,例如, in prepareForSegue:。只需为视图控制器提供强大的@property即可跟踪它。

SomeViewController *nextVC = segue.destinationController;
nextVC.myVariable = self.myVariable;

这就是Apple在具有托管对象上下文的示例代码的许多实例中的表现,它当然是一个很好的模式。