質問

私はOBJ-C(セレクター)中のプリミティブと可変配列を持っていると思います。これを実行するための推奨方法は何ですか? NSArray及びそれらはオブジェクトのみを保持することができます。

役に立ちましたか?

解決

あなたは、セレクタまたはあなたが必要とする他のプリミティブ型をラップするNSValueを使用する必要があります。ココアSELでは、ポインタのいくつかの種類であるので、あなたはそれを得るためにそれと[NSValue valueWithPointer:whatever]を構築するために[value pointerValue]を使用することができます。または、一般的に、あなたは[NSValue valueWithBytes:&whatever objCType:@encode(SEL)]を使用することができます。これは、任意のタイプのために働くます。

他のヒント

あなたはSELオブジェクトの配列を格納する場合は、

、最も簡単な方法は、SEL機能を使用してNSStringsにNSStringFromSelector()sを変換NSMutableArrayに保存し、その後、あなたがSELを使用してそれらを引き出したときNSSelectorFromString()sに戻ってそれらを変換することです機能ます。

(IMO、間違いなく最高のオプションではありません)Cスタイルの配列を自分で管理する以外にも、あなたの唯一のオプションはNSArray / NSMutableArrayを使用し、NSNumberを使用して数値を格納することです。これは、実際の数値型と比べて外れ値を取得するには少し迷惑なんだが、それは自分で配列のメモリを管理するからあなたを自由にします。

プリミティブ型は、一般的に数字だけ(彼らは、整数または浮動小数点こと)またはポインタなので、自分の目的のためにをラップするために使用するクラスを使用しての問題点は何ですか?例えばNSMutableArrayNSNumbers、?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top