2013-04-18 5 views
5

修正方法を理解できないというコアデータエラーが発生しました。希望の型NSNumber指定の型__NSCFStringエラー

私は基本的に、オブジェクトのすべてのデータを辞書に引き出し、そのデータをフォームに表示します。一部のフィールドでは編集が可能で、データは送信時にオブジェクトに戻します。私はエラー

Unacceptable type of value for attribute: property = "totalLocations"; desired type = NSNumber; given type = __NSCFString; value = 7.

は、ここでは、この特定のプロパティを処理するコードがあり得るすべての新規/更新された値を設定するしかし

、...さておきこれら2から

//grab the value from the property 

    if (myObject.totalLocations) 
    [data setObject:myObject.totalLocations forKey:@"totalLocations"]; 

    // store it back to the object 
    _myObject.totalLocations = [data objectForKey:@"totalLocations"]; 

ラインは、プロパティのあまりの使用法はありません。この特定の画面ではユーザーが変更することはできません。

答えて

6

コアデータエンティティIntegerのタイプはtotalLocationsで、myObject.totalLocationsはNSStringですか?私は私の管理対象オブジェクトを設定する方法は、このようなものです

[data setValue:[NSNumber numberWithInteger:[myObject.totalLocations integerValue]] forKey:@"totalLocations"]; 

:はいあなたは、このようなコアデータを設定する必要がある場合は

- (void)insertNewPromo:(NSDictionary *)promoJson 
{ 
    NSManagedObjectContext *context = [self.promoFetchedResultsController managedObjectContext]; 
    NSEntityDescription *entity = [[self.promoFetchedResultsController fetchRequest] entity]; 
    NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context]; 

    // Checking if inappropriate data are in the JSON to avoid some crashes. 
    if ([[promoJson objectForKey:@"id"] isKindOfClass:[NSNull class]]) 
     [newManagedObject setValue:nil forKey:@"id"]; 
    else 
     [newManagedObject setValue:[NSNumber numberWithInteger:[[promoJson objectForKey:@"id"] integerValue]] forKey:@"id"]; 
    ... 
    ... 
    NSError *error = nil; 
    if (![context save:&error]) 
    { 
     if (DEBUG_ON == 1) 
     NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
     abort(); 
    } 
} 

promoJsonidオブジェクトは、NSStringの

+0

より簡潔な表現であります'@(myObject.totalLocations.integerValue)'です。 –

+0

myObject.totalLocationsはNSNumberです – JMD

+0

'[cham​​berData objectForKey:@" totalLocations "]'のタイプは何ですか? – Jeremy