[黒馬プログラマー][OC]Foundationフレームワークにおける集合クラス

4977 ワード

---------Javaトレーニング、Androidトレーニング、iOSトレーニング、.Netトレーニングはあなたと交流することを期待します!------
NSArray:
オブジェクトを格納するために使用されるシーケンステーブル(任意のタイプのオブジェクト)は、Objective-Cのオブジェクトのみを格納でき、C言語の基本データ型を格納できません.
(int、float、enum、struct、またはNSArrayのランダムポインタ).nil(オブジェクトのゼロ値またはNULL値)も格納できません.
1.NSArrayの基本使用:
/*
1.NSArray   
*/
NSArray *array1 = [NSArray arrayWithObject:@"jack"];
    
// nil          
NSArray *array2 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
// [array2 count];
    
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];
    
//       NSArray  (             NSArray)
NSArray *array4 = @[@"jack", @"rose", @"4324324"];
    
    
/*
2.NSArray     
*/
NSLog(@"%ld", array4.count);
    
    
/*
3.NSArray      
*/
NSLog(@"%@", [array4 objectAtIndex:1]);
    
//array4[1];
NSLog(@"%@", array4[0]);

2.遍歴配列(配列を3つの方法で遍歴)
NSArray *array = @[@"jim", @"rose", @"jack"];
    
//    for (int i = 0; i

3.可変配列の基本使用
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];
    
//     
[array addObject:[[Person alloc] init]];
    
[array addObject:@"jack"];
    
//     
//[array removeAllObjects];
//        
// [array removeObject:@"jack"];
[array removeObjectAtIndex:0];
    
//     
// [array addObject:nil];
    
    
NSLog(@"%@", array);
    
NSLog(@"%ld", array.count);

NSSet 
は、可変および可変のセットを持つ単一値オブジェクトのセットです.これには、セット内のメンバーの検索、追加、削除(可変セットのみ)、2つのセットの比較、2つのセットの交差および並列セットの計算などが含まれます.
1.NSSetの基本使用:
NSSet *s = [NSSet set];
    
NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose", @"jack2",@"jack3",nil];
    
//         
NSString *str =  [s2 anyObject];
    
NSLog(@"%@", str);
    
NSLog(@"%ld", s2.count);

2.NSMutableSetの基本使用:
NSMutableSet *s = [NSMutableSet set];
    
//     
[s addObject:@"hack"];
    
//     
// [s removeObject:];

NSSetとNSArrayの対比
1>共通点
1.すべて集合であり、複数のOCオブジェクトを格納することができる.
2.OCオブジェクトのみを格納でき、非OCオブジェクトタイプを格納できない(基本データタイプ:int、char、floatなど、構造体、列挙);
3.それ自体は可変ではなく、いずれも可変のサブクラスがある.
 
2>異なる点
NSArrayには順序があり、NSSetには順序がない.
NSDictionary:
通常、指定されたキーワード(通常はNSString文字列)の下に数値(任意のタイプのオブジェクト)が格納されます.このキーワードを使用して、対応する数値を検索できます.
1.NSDictionaryの基本使用:
/*
  :
     
key ----> value
   ---->     
     
            
     
*/
    
// NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];
    
    
// NSArray *keys = @[@"name", @"address"];
// NSArray *objects = @[@"jack", @"  "];
    
// NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
    
    
/*
     NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
     @"jack", @"name",
     @"  ", @"address",
     @"32423434", @"qq", nil];*/
    
    
NSDictionary *dict = @{@"name" : @"jack", @"address" : @"  "};
    
// id obj = [dict objectForKey:@"name"];
    
id obj = dict[@"name"];
    
NSLog(@"%@", obj);
    
    
    
//           
NSLog(@"%ld", dict.count);

2.NSMutableDictionarの基本使用
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    
//      
[dict setObject:@"jack" forKey:@"name"];
    
    
[dict setObject:@"  " forKey:@"address"];
    
[dict setObject:@"rose" forKey:@"name"];
    
    
//      
// [dict removeObjectForKey:];
    
    
NSString *str = dict[@"name"];
    
    
//NSLog(@"%@", str);
    
NSLog(@"%@", dict);
    
    
//NSLog(@"%@", @[@"jack", @"rose"]);

3.辞書の遍歴
//          key,       value(Object)
//       
NSDictionary *dict = @{
@"address" : @"  ",
@"name" : @"jack",
@"name2" : @"jack",
@"name3" : @"jack",
@"qq" : @"7657567765"};
    
//    NSArray *keys = [dict allKeys];
//
//    for (int i = 0; i

集合のまとめ:
 1.NSArray\NSMutableArray
*秩序化*クイック作成(可変):@[obj 1,obj 2,obj 3];*クイックアクセス要素:配列名[i];
 
 2.NSSet\NSMutableSet
*無秩序
 
 3.NSDictionary\NSMutableDictionary
*無秩序*クイック作成(可変):@{key 1:value 1,key 2:value 2};*クイックアクセス要素:辞書名[key];