2011-11-10 5 views
2

私はさまざまな種類のオブジェクトでいっぱいになっているNSArrayを持っています。 1つはNSDictionaryで、もう1つはNSDataです。 この配列からオブジェクトをランダムに選択して、オブジェクトの種類を確認します。 NSDictionaryの場合は、メソッドAを実行します。 NSDataの場合は、メソッドBを実行します。Arrayからランダムに選択されたオブジェクトタイプを取得しますか?

これをコードにする方法はありますか?

ありがとうございます!

答えて

7

は本当に重要ではありません。

+0

1つの質問。メソッドBでは、NSDataをUIImageに変換しているとしたら、どうすればいいですか?私は変数objを使用してみましたが、警告をスローするようです。 –

+0

[UIImage imageWithData:obj]を試しましたか? –

+0

はい 'NSObject'型のパラメータに 'NSObject'を送信する互換性のないポインタ型を取得します –

1

乱数ジェネレータを使用すると、0から配列の最後のインデックスまでの数値を取得できます。その後、オブジェクトを取得すると、配列から返されたオブジェクトに対してisKindOfClassまたはisMemberOfClassメソッドを使用できます。

id obj = [array methodThatReturnsARandomObject]; 
if ([obj isKindOfClass:[NSDictionary class]]) { 
    a(); 
} else if ([obj isKindOfClass:[NSData class]]) { 
    UIImage *image = [UIImage imageWithData:obj] 
} 

それとも、

NSObject *obj = [array methodThatReturnsARandomObject]; 
if ([obj isKindOfClass:[NSDictionary class]]) { 
    a(); 
} else if ([obj isKindOfClass:[NSData class]]) { 
    UIImage *image = [UIImage imageWithData:(NSData *)obj] 
} 

を行うことができますのObjective-Cに変換

関連する問題