これは私を夢中にさせています。
Core Data モデルに、int16_t として定義された「cardType」というフィールドがあります。
intとして定義されているUISegmentedControl.selectedSegmentIndexの設定を保持したい。この特定の UISegmentedControl は 4 つのセグメントに設定されているため、int16_t はやり過ぎです。
設定しようとしたら
segmentedControl.selectedSegmentIndex = [dataTable cardType];
「'int16_t *' (別名 'short *') から 'NSInteger' (別名 'int') に代入する整数変換への互換性のないポインター」というエラーが表示されます。
楽しみのために、メソッドの戻り値の前にアスタリスクを付けました。*[dataTable cardType] ですが、明らかにうまくいきませんでした。(int *)dataTable.cardType も実行しましたが、これも愚かな試みでした。コンパイラはそれを気に入りましたが、ランタイムはそれをすべて吐き出しました.
また、値を一連の NSNumber および NSInteger 操作に移動しようとしたマルチステップ コードを少し試しましたが、いずれも機能しませんでした。
私が考えたもう 1 つの考えは、データ型を NSString に変換し、文字列関数を使用してテキストと整数の間で変換することですが、それはあまりエレガントではないようです。
これは本当に単純なものであるように思えますが、私はそれを見つけるにはあまりにも無感覚です.