私はARC(自動参照カウント)に私のObjective Cコードを変換忙しい、そして次の問題に遭遇した: 'NSInteger'(別名 'INT')のIOS Objective CのARC変換問題
キャストSomeRandomObject」へ'はARCで許可されていません。
私たちのアプリケーションでは、(残念ながら)タグNSIntegerプロパティを使用しています。 UITextField、UISwitchなどにあり、オブジェクトをコントロールにリンクします。
コードは、あなたは、単にこれを達成するためのより良い/より標準的な方法だろうこれは何
UITextField *textField = (UITextField*)sender;
Field *field = (Field*)textField.tag; // ARC hates this
を行うことができますイベントに達するすっごく
Field *field = [[Field alloc] init...
UITextField *textField = [[UITextField alloc]....
textField.tag = (NSInteger)field;
?
たぶん私も、カテゴリを使用して行うことができます何か? – Helix
@Helix:カテゴリを 'objc_setAssociatedObject()'と組み合わせて使うことも、カテゴリ内にUITextField-> Field関連の静的なNSMutableDictionaryを持たせることもできますが、カテゴリは基本的にはソリューション上の「もっと良い」インターフェースになります。本当に問題自体を解決することはできません。 (私がNSDictionaryの解決策について言及しなかったのは、 'objc_setAssociatedObject()'を推奨するものが本当にないと思っていて、かなり複雑です。) – Chuck
はい、NSDictionaryの解決策不要な複雑さ – Helix