1

したがって、Web サービスからカスタム オブジェクトをロードし、プロパティを NSStrings として保存しようとしていますが、このエラーが発生し続けます。

-[CFString _cfTypeID]: message sent to deallocated instance 0x100d3d40
-[CFString retain]: message sent to deallocated instance 0x100d3d40

ゾンビを有効にしましたが、実際には解決策を示していません。

私のプロパティは次のように定義されています。

@property (strong, nonatomic) NSString *title;
@property (assign, nonatomic) NSString *ID;
@property (strong, nonatomic) NSString *redLabel;
@property (strong, nonatomic) NSString *greenLabel;

次に、オブジェクトのインスタンスを作成し、Web サービスを呼び出します

QuickList *list = [[QuickList alloc] init];
[list loadLatestQuickList];

そして最後に、内部loadLatestQuickList...

NSURLRequest *request = // create a GET request...
[NSURLConnection sendAsynchronousRequest:request queue:notMainQueue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
    NSError *parsingError;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&parsingError];
    if (!parsingError && [json isKindOfClass:[NSDictionary class]]) {
        NSDictionary *dataDictionary = [json objectForKey:@"data"];
        NSDictionary *quickListDictionary = [dataDictionary objectForKey:@"QuickList"];

        NSString *ID = [quickListDictionary objectForKey:@"id"];
        NSString *title = [quickListDictionary objectForKey:@"name"];
        NSString *redLabel = [quickListDictionary objectForKey:@"red_label"];
        NSString *greenLabel = [quickListDictionary objectForKey:@"green_label"];

        self.ID = ID;
        self.title = title;
        self.redLabel = redLabel;
        self.greenLabel = greenLabel;

        // tell a channel that everything is loaded
    }
    else {
        NSLog(@"%@",parsingError);
    }
}];

list.IDまたは他のプロパティにアクセスしようとすると、「インスタンスの割り当てが解除されました」というエラーが表示されます。このエラーが発生する理由について何か考えはありますか?

4

1 に答える 1

3

あなたのID財産もそうあるべきstrongです。

于 2012-07-21T17:36:49.127 に答える