2012-03-25 14 views
2

私はアプリケーションのコアデータから結果を取り出し、私が与えた '容量'属性の整数値を取得する必要があります。CoreDataから整数を取得していますか?

'capacity'属性は、コアデータモデルのNSInteger 16です。

私はそうのように私の結果を得る:

entity = [NSEntityDescription entityForName:@"TableInfo" inManagedObjectContext:appDelegate.managedObjectContext]; 
    [fetchRequest setEntity:entity]; 
    [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"name == %@", [NSString stringWithFormat:@"%@", [tablesArray objectAtIndex:row]]]]; 

    NSArray *selectedTableFetched = [appDelegate.managedObjectContext executeFetchRequest:fetchRequest error:&error]; 

今私の問題は、私は私の結果から「容量」の値を得るのですかですか?私は、配列の数をチェックしていると私はこれを試してみましたように、結果が存在しているはず:

NSNumber *n = [selectedTableFetched valueForKey:@"capacity"]; 

私がしようとするとアクセスので、もしそれが、私に何か、のNSNumberにアクセスしたとき、私は意味のない長い番号を取得を与えます整数値はそうのように:

[n integerValue] 

それはアプリがクラッシュし、私はこのエラーを取得する:

'NSInvalidArgumentException', reason: '-[__NSArrayI integerValue]: unrecognized selector sent to instance 0x138870' 

は私がする必要があるすべては容量attribuからその整数値を取得している、あなたは私を助けることを願ってテ、ありがとう。

+0

私は '[selectedTableFetched valueForKey: "容量" @]は思う:'目的の暗黙の変換 '' NSNumber'しかし 'NSArray' – tipycalFlow

答えて

5

selectedTableFetchedにライン

NSNumber *n = [selectedTableFetched valueForKey:@"capacity"]; 

をchaingてみNumber型 に整数を代入しようとすると、配列だと思う:あなたがそう

NSArray *selectedTableFetched = [appDelegate.managedObjectContext executeFetchRequest:fetchRequest error:&error]; 

要素を使って作業したい(おそらく、あなたのに基づいた唯一の要素ですあなたがvalueForKeyを行う前に、の述語):

NSManagedObject *managedObject = [selectedTableFetched lastObject]; 
NSNumber *n = [managedObject valueForKey:@"capacity"]; 
NSInteger *yourInteger = [n integerValue]; 
+1

管理対象オブジェクトのインスタンスを作成することは、トリックでした。 –

0

私はあなたの

NSInteger *n = [selectedTableFetched valueForKey:@"capacity"]; 
+0

エラーを返しません。 -C 'NSInteger *'(aka 'int *')へのポインタはARCで許可されていません。 –

関連する問題