0
singelton.categoryId = (int)[categories.categoriesId objectAtIndex:indexPath.row];
NSLog(@"%d", singelton.categoryId);

singelton.categoryIdはからタイプint
しかし、印刷しようとすると数字はランダムですが、これを行うNSLog(@"%@", singelton.categoryId);と印刷された値は正しいです。
で印刷する必要があります%d

誰かが私を助けることができますか?

4

6 に答える 6

4

intValueメソッドを使用して、 NSString/NSNumberの整数表現を取得します。試す、

singelton.categoryId = [[categories.categoriesId objectAtIndex:indexPath.row] intValue];
于 2011-07-22T08:28:15.773 に答える
2

配列が NSNumber を返すと仮定しています。だからこれを試してみてください。

int catId = [ ((NSNumber*) [categories.categoriesId objectAtIndex:indexPath.row] ) intValue];
NSLog(@"%d, catId )
于 2011-07-22T08:30:49.063 に答える
1

以下を試してください:

NSLog(@"%d", [singelton.categoryId intValue]);
于 2011-07-22T08:28:56.193 に答える
1

この方法でこれをやってみてください:

singelton.categoryId = [[categories.categoriesId objectAtIndex:indexPath.row] intValue]

これは、int を配列に格納できないためですNSNumbers

于 2011-07-22T08:29:11.953 に答える
1

によって返されるカテゴリ IDobjectAtIndex:はオブジェクトであり、おそらくNSNumber. にキャストするとint、オブジェクトに格納されている数値ではなく、オブジェクトのアドレスが取得されます。正しいコードは次のようになります。

singleton.categoryID = [[… objectAtIndex:…] intValue];
于 2011-07-22T08:29:53.123 に答える
1

それが適切なオブジェクトである場合、それがプリミティブ型から来る方法はありませんint(ここでObjective-Cの他の場所と同じように動作すると仮定しますobjectAtIndex-つまり、それはあなた自身のメソッドではありません。したがって、次を要求する必要がありますintValue

[[categories.categoriesId objectAtIndex:indexPath.row] intValue]

それが利用可能な方法である場合。は何のクラスcategoriesIDですか?

于 2011-07-22T08:32:22.593 に答える