0

我迷失了这个,已经在互联网上阅读了一些东西,但我的问题是我需要了解如何正确使用单例。我的问题是,在我的应用程序的某个时刻,我执行以下操作:

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

问候

4

1 回答 1

1

通常的方法是让控制器在将变量压入导航堆栈时将变量传递给下一个变量,例如in prepareForSegue:. 只要给你的视图控制器一个强大@property的跟踪它。

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

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

于 2013-08-09T23:44:04.000 回答