【Objective-C】辞書オブジェクトNSDictionaryとNSMutableDictionary
4053 ワード
Java言語やC言語の開発をしたことのある方はキーワードmapをよく知っているでしょう.データをキー値対児の形で保存することができ、値を取るときにKEYで直接対応する値を手に入れることができ、非常に便利で、非常によく使われるデータ構造です.Objective-C言語では、もちろんこの方面のサポートもありますが、辞書オブジェクトはこのことをしていますが、同じ辞書オブジェクトに複数の異なるタイプのデータを保存することができ、JavaやCが宣言した同じタイプのデータしか保存できないように、この点では多くの問題を解決することができます.
辞書のキーワードはNSDictionaryとNSMutableDictionaryです.OCに少し知っている友人はキーワードの構造からこの2つの違いを見ることができるはずだ.前者は可変辞書であるか,あるいは可変辞書であることは明らかである.1.可変辞書の作成[NSDictionary dictionaryWithObjectsAndKeys:.]:キー値ペアを使用して辞書オブジェクトを直接作成し、最後にnilフラグを使用して終了する必要があります.
[NSDictionary initWithObjectsAndKeys:..] :キー値ペアを使用して辞書オブジェクトを初期化し、最後にnilフラグを使用して終了する必要があります.
[dictionary count]:辞書の長さ単位を取得します.
[dictionary keyEnumerator]:辞書のすべてのKEYをNSEnumeratorに保存します.NSEnumeratorはJava言語の反復器に似ています.クイック列挙を使用して、辞書のすべての保存KEY値を遍歴できます.
[dictionary objectEnumerator]:辞書のすべてのvalueをNSEnumeratorに格納し、KEY対応の格納されたValue値を遍歴するために使用できる使用法と上の差は多くありません.
[dictionary objectForKey:key]:現在のKEYに対応して格納されている値は、KEYオブジェクトに入力することで取得できます.
2.可変辞書オブジェクトを作成するNSMutableDictionaryはNSDictionaryのサブクラスであるため、NSDictionaryのメソッドが継承されます.[NSMutableDictionary dictionaryWithCapacity:10]:可変辞書を作成し、最初に長さ10を指定します.動的にデータを追加すると、この辞書の長さは自動的に増加するので、配列の境界を越える心配はありません.
[NSMutableDictionary initWithCapacity:10]:初期化された辞書の長さは10です.
[dictionary setObject:@「雨松MOMO」forKey:@「name」]:可変辞書に動的にデータを追加します.ここでkeyはname値が雨松MOMOです.このKEYのデータが辞書に存在する場合は、このKEYの値を直接置き換えます.
[dictionary removeAllObjects..] :辞書のすべてのデータを削除します.
[dictionary removeObjectForKey..] :辞書で指定したKEYのデータを削除します.
over~!
辞書のキーワードはNSDictionaryとNSMutableDictionaryです.OCに少し知っている友人はキーワードの構造からこの2つの違いを見ることができるはずだ.前者は可変辞書であるか,あるいは可変辞書であることは明らかである.1.可変辞書の作成[NSDictionary dictionaryWithObjectsAndKeys:.]:キー値ペアを使用して辞書オブジェクトを直接作成し、最後にnilフラグを使用して終了する必要があります.
[NSDictionary initWithObjectsAndKeys:..] :キー値ペアを使用して辞書オブジェクトを初期化し、最後にnilフラグを使用して終了する必要があります.
[dictionary count]:辞書の長さ単位を取得します.
[dictionary keyEnumerator]:辞書のすべてのKEYをNSEnumeratorに保存します.NSEnumeratorはJava言語の反復器に似ています.クイック列挙を使用して、辞書のすべての保存KEY値を遍歴できます.
[dictionary objectEnumerator]:辞書のすべてのvalueをNSEnumeratorに格納し、KEY対応の格納されたValue値を遍歴するために使用できる使用法と上の差は多くありません.
[dictionary objectForKey:key]:現在のKEYに対応して格納されている値は、KEYオブジェクトに入力することで取得できます.
#import <UIKit/UIKit.h>
#import "MyClass.h"
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@" MOMO",@"name",@"15810463139",@"number", nil];
//
int count = [dictionary count];
NSLog(@" : %d",count);
// KEY
NSEnumerator * enumeratorKey = [dictionary keyEnumerator];
// KEY
for (NSObject *object in enumeratorKey) {
NSLog(@" KEY : %@",object);
}
// Value
NSEnumerator * enumeratorValue = [dictionary objectEnumerator];
// Value
for (NSObject *object in enumeratorValue) {
NSLog(@" Value : %@",object);
}
// KEY value
NSObject *object = [dictionary objectForKey:@"name"];
if (object != nil) {
NSLog(@" KEY value : %@",object);
}
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
2.可変辞書オブジェクトを作成するNSMutableDictionaryはNSDictionaryのサブクラスであるため、NSDictionaryのメソッドが継承されます.[NSMutableDictionary dictionaryWithCapacity:10]:可変辞書を作成し、最初に長さ10を指定します.動的にデータを追加すると、この辞書の長さは自動的に増加するので、配列の境界を越える心配はありません.
[NSMutableDictionary initWithCapacity:10]:初期化された辞書の長さは10です.
[dictionary setObject:@「雨松MOMO」forKey:@「name」]:可変辞書に動的にデータを追加します.ここでkeyはname値が雨松MOMOです.このKEYのデータが辞書に存在する場合は、このKEYの値を直接置き換えます.
[dictionary removeAllObjects..] :辞書のすべてのデータを削除します.
[dictionary removeObjectForKey..] :辞書で指定したKEYのデータを削除します.
#import <UIKit/UIKit.h>
#import "MyClass.h"
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//
// , 10
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:10];
//
[dictionary setObject:@" MOMO" forKey:@"name"];
[dictionary setObject:@"15810463139" forKey:@"number"];
// KEY value
NSObject *object = [dictionary objectForKey:@"name"];
if (object != nil) {
NSLog(@" KEY value : %@",object);
}
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
over~!