2012-02-04 22 views
-3

Objective-Cの配列をどのようにナビゲートしますか?次の例を考えてみましょう。Obj-C配列を反復する

(
     [key] => value 
     [key] => value 
    ) 

何かアドバイスがありますか?

+0

uはNSDictionaryのオブジェクトを意味ですか? [someObject objectForKey: ""]またはurオブジェクトは正確には何ですか? –

+0

XcodeはIDEであり、配列はありません。あなたはObjective-Cを意味しますか?次に、ObjCの正確な内容は? – deceze

+0

"ナビゲート"とは、ループまたはインデックスを意味しますか? Objective-C配列は、(他の言語と同様に)整数だけで索引付けされることに注意してください。文字列インデックスが必要な場合は、辞書(['NSDictionary')(https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsdictionary_Class/Reference/Reference.html)を使用します。 、ObjCで)。辞書は「連想配列」とも呼ばれ、PHPの用語集です。 – outis

答えて

7

「ナビゲート」は、「ループ」または「インデックス」を意味する可能性があるため、あいまいな用語です。 "反復"は "ループ"の同義語です。人々は "索引"に "逆参照"を使用することがありますが、逆参照は、指されているものにアクセスするときにポインタにのみ適切に適用されます。 Cなどの一部の言語では、索引付けには逆参照が含まれています(逆参照がこのように使用される理由です)。しかし、これは一般的ではありません。Objective-CのNSArrayでは当てはまりません。

Objective-Cの配列は、他のほとんどの言語と同様に、インデックス付き整数です。ディクショナリは、文字列で索引付けされるデータ構造です。 Objective-Cでは、辞書はNSDictionaryNSMutableDictionaryとして利用できます。辞書は「連想配列」とも呼ばれ、PHPについて言及すると「配列」に短縮されることがあります。これは、PHPのすべての配列が連想しているためです。

あなた指数objectForKey:方法と辞書:あなたはsetObject:forKey:を使用してNSMutableDictionaryに項目を追加することができます

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 
    [NSNumber numberWithDouble:120.50],@"balance", 
    @"myuser",@"username" 
    nil]; 

NSLog(@"%@", [dict objectForKey:@"balance"]); 
NSLog(@"%@", [dict objectForKey:@"username"]); 

// mutableDict is an owning reference; if not using ARC, it must be released 
NSMutableDictionary *mutableDict = [dict mutableCopyWithZone:NULL]; 
[mutableDict setObject:@"bar" forKey:@"foo"]; 

あなたはfast enumeration構文を使用してキーをループすることができます:

for (id key in dict) { 
    NSLog(@"%@: %@", key, [dict objectForKey:key]); 
} 

Bot反復と索引付けは最も基本的な配列操作です。 Objective-C情報の現在のソースでそれらについて説明していない場合は、新しいソースを見つけてください。ソースがない場合は、見つけてください。無ければ、必要なものすべてを学ぶことはありません。

も参照してください:

関連する問題