別のクラスで設定される NSManagedObject にアクセスする必要があるため、次のようなシングルトンを作成してみました。
MyManager.h
#import <CoreData/CoreData.h>
#import <foundation/Foundation.h>
@interface MyManager : NSObject {
NSManagedObject *someProperty;
}
@property (nonatomic, retain) NSManagedObject *someProperty;
+ (id)sharedManager;
@end
MyManager.m
#import "MyManager.h"
@implementation MyManager
@synthesize someProperty;
#pragma mark Singleton Methods
+ (id)sharedManager {
static MyManager *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
- (id)init {
if (self = [super init]) {
someProperty = nil;
}
return self;
}
- (void)dealloc {
// Should never be called, but just here for clarity really.
}
@end
私はこのように1つのクラスに設定しました:
MyManager *sharedManager = [MyManager sharedManager];
sharedManager.someProperty = self.form;
しかし、ログに記録するとnullです
NSLog(@"shared::%@", sharedManager.someProperty);
シングルトンは初めてなので、アドバイスが必要です。