0

Initでクラス のSIGABRTプロパティ「myLocal」に値を割り当てると、どうしたの?CMRequestManagerSingleton

 @interface CMRequestManager (private)
        @property (nonatomic,strong)  NSString* myLocal;
 @end

 @implementation CMRequestManager
        #pragma mark Singleton Methods
        + (id)Manager {
            static CMRequestManager *sharedMyManager = nil;
            static dispatch_once_t onceToken;
            dispatch_once(&onceToken, ^{
                sharedMyManager = [[self alloc] init];
                sharedMyManager.myLocal = @"test test"; //SIGABRT !!!!
            });
            return sharedMyManager;
        }

        - (id)init {
            if (self = [super init]) {

            }
            return self;
        }
 @end

編集:

わかりました、解決策を見つけました: ヘッダー ファイル内のプロパティ "myLocal" をクラス拡張子の外に移動します。

 @interface CMRequestManager 
 @property (nonatomic,strong)  NSString* myLocal;
 @end

これは機能しますが、理由がわかりません。疑問が残ります: 以前のコードのどこが間違っているのでしょうか?

4

1 に答える 1