0

次の NSUrl オブジェクトがあります。

NSURL * urlImage1 = [[NSURL alloc]initWithString:url1];
NSURL * urlImage2 = [[NSURL alloc]initWithString:url2];
NSURL * urlImage3 = [[NSURL alloc]initWithString:url3];    
NSURL * urlImage4 = [[NSURL alloc]initWithString:url4];    
NSURL * urlImage5 = [[NSURL alloc]initWithString:url5]; 

NSUrl ポインターをパラメーターとして期待する次のメソッド:

-(void)loadImageInBackground:(NSURL *)urlImage

@"urlImage1" のような文字列がある場合、それをパラメーターとして loadImageInBackground: に渡すにはどうすればよいですか? NSArray内にすべてをプッシュする以外に、とにかくありますか?私は興味があります。

ありがとうルカ

4

4 に答える 4

0

URL がオブジェクト プロパティである場合、それらを KVC 準拠にすることができます。

クラスを KVC 準拠にする

NSKeyValueCoding 非公式プロトコルにより、KVC が可能になります。そのメソッドのうちの 2 つ (valueForKey:およびsetValue:forKey:) は、キーが与えられたときにプロパティの値を取得して設定するため、特に重要です。NSObject はこれらのメソッドのデフォルトの実装を提供し、クラスがキーと値のコーディングに準拠している場合は、この実装に依存できます。

于 2012-06-02T08:49:23.690 に答える
0

配列内のすべての要素をプッシュすることの何が問題なのかわかりませんか? パターン url1、url2、url3... は、コレクション型のデータ構造をほとんど呼び出します。もちろん、NSSet などの別のコレクション タイプを使用することもできます。

NSSet *set = [NSSet setWithObjects:@"url1", @"url2", @"url3", @"url4", @"url5", nil];
set enumerateObjectsUsingBlock:^(id obj, BOOL *stop) [{
    NSURL *url = [[NSURL alloc]initWithString:obj];
    [yourLoader loadImageInBackground:url];
}];

このようなものを探している場合 (疑似コード):

this.myIVar = ""
s="myIVar"
this[s]="lolz"
trace(this.myIVar)  //Expected: lolz 

これは Objective-C がサポートするものではないと思いますし、上記に比べて読みやすいとは思いません。

于 2012-06-02T08:52:00.197 に答える
0

デバッグ シンボル (通常は実行可能ファイルから取り除かれます) を除いて、Objective-C (多くのコンパイル済み言語と同様) はコンパイル済みプログラムのローカル変数の名前を保持しません。変数には名前がないため、名前で変数を参照する方法はありません。メモリ内の単なるアドレスです。

于 2012-06-02T08:47:51.470 に答える
0

すべての NSURL オブジェクトを辞書に格納し、文字列をキーとして使用できます。

于 2012-06-02T08:27:01.923 に答える