【黑马程序员】————Foundation框架02常用类—集合类

NSArray

->NSMutableArray

NSSet

->NSMutableSet

NSDictionary

->NSMutableDictionary

1、NSArray/NSMutableArray

NSArray :不可变数组
 
NSMutableArray : 可变数组

基本使用

 1 void use()
 2 {
 3     /*
 4        C数组对比
 5      int a = 5;
 6
 7      int ages[10] = {1, 90, 89, 17};
 8
 9      Person *p = [[Person alloc] init];
10      Person *persons[5] = {p,  [[Person alloc] init]};
11      */
12
13     // OC数组不能存放nil值
14     // OC数组只能存放OC对象、不能存放非OC对象类型,比如int、struct、enum等
15
16     // 这个array永远是空数组
17     // NSArray *array = [NSArray array];
18
19
20     /*
21      1.NSArray的创建
22      */
23     NSArray *array2 = [NSArray arrayWithObject:@"jack"];
24
25     // nil是数组元素结束的标记
26     NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
27     // [array2 count];
28
29     //NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];
30
31     // 快速创建一个NSArray对象
32     NSArray *array4 = @[@"jack", @"rose", @"4324324"];
33
34
35     /*
36      2.NSArray的元素个数
37      */
38     NSLog(@"%ld", array3.count);
39
40
41     /*
42      3.NSArray中元素的访问
43      */
44     NSLog(@"%@", [array3 objectAtIndex:1]);
45
46     //array3[1];
47     NSLog(@"%@", array3[0]);
48 }

遍历数组

 1 oid use2()
 2 {
 3     Person *p = [[Person alloc] init];
 4
 5     NSArray *array = @[p, @"rose", @"jack"];
 6
 7     //    for (int i = 0; i<array.count; i++)
 8     //    {
 9     //        NSLog(@"%@", array[i]);
10     //    }
11
12     // id obj代表着数组中的每一个元素
13     //int i = 0;
14     //    for (id obj in array)
15     //    {
16     //        // 找出obj元素在数组中的位置
17     //        NSUInteger i = [array indexOfObject:obj];
18     //
19     //        NSLog(@"%ld - %@", i, obj);
20     //        //i++;
21     //
22     //        if (i==1)
23     //        {
24     //            break;
25     //        }
26     //    }
27
28     [array enumerateObjectsUsingBlock:
29
30      // 每遍历到一个元素,就会调用一次block
31      // 并且当前元素和索引位置当做参数传给block
32      ^(id obj, NSUInteger idx, BOOL *stop)
33      {
34          NSLog(@"%ld - %@", idx, obj);
35
36
37          if (idx == 0)
38          {
39              // 停止遍历
40              *stop = YES;
41          }
42
43      }];
44
45
46     //    void ^(myblock)(id, NSUInteger, BOOL *) = ^(id obj, NSUInteger idx, BOOL *stop)
47     //    {
48     //        NSLog(@"%ld - %@", idx, obj);
49     //
50     //
51     //        if (idx == 0)
52     //        {
53     //            // 停止遍历
54     //            *stop = YES;
55     //        }
56     //    };
57     //
58     //    for (int i = 0; i<array.count; i++)
59     //    {
60     //        // 用来标记是否需要停止遍历
61     //        BOOL isStop = NO;
62     //
63     //        // 取出元素
64     //        id obj = array[i];
65     //
66     //        myblock(obj, i, &isStop);
67     //
68     //
69     //        if (isStop)
70     //        {
71     //            break;
72     //        }
73     //    }
74
75 }

可变数组的基本使用

 1 void use3()
 2 {
 3     NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];
 4
 5     // 添加元素
 6     [array addObject:[[Person alloc] init]];
 7
 8     [array addObject:@"jack"];
 9
10     // 删除元素
11     //[array removeAllObjects];
12     // 删除指定的对象
13     // [array removeObject:@"jack"];
14     [array removeObjectAtIndex:0];
15
16     // 错误写法
17     // [array addObject:nil];
18
19
20     NSLog(@"%@", array);
21
22     NSLog(@"%ld", array.count);
23 }

注意:

 1 void use4()
 2 {
 3    // @[] 只创建不可变数组NSArray
 4     /* 错误写法
 5     NSMutableArray *array = @[@"jack", @"rose"];
 6
 7     [array addObject:@"jim"];
 8     */
 9
10
11     //NSArray *array = @[@"jack", @"rose"];
12 }
时间: 2024-10-13 22:48:01

【黑马程序员】————Foundation框架02常用类—集合类的相关文章

黑马程序员--Foundation框架之--NSString类以及它的子类NSMutableString类

继续看一下Foundation框架中的常用对象:NSString和NSMutableString 在OC中NSString对象是不可变的,和Java中的String一样的,而NSMutableString是可变的,和Java中的StringBuilder一样. 一.NSString对象 在OC中,NSString对象是非常重要的一个对象,也是最基础的一个对象,是用来处理字符串的常用类. 下面来看一下NSString的一些方法的使用: 1.创建的方法 // 字符串的创建方式 NSString *s

黑马程序员--Foundation框架之--NSObject类

OC中的Foundation框架是系统提供的,他就相当于是系统的一套api,其内部有很多现有的类和功能提供给我们使用. 那么今天首先来介绍一下Foundation框架中的第一个类NSObject. // // Person.h // 13_NSObjectMethod // // Created by waterfoxjie 15-03-31. // Copyright (c) 2015年 waterfoxjie. All rights reserved. // #import <Foundat

黑马程序员--Foundation框架之--NSDirctionary类以及它的子类NSMutableDirctionary类

------IOS培训期待与您交流! ------- 今天来看一下Foundation框架中的NSDirctionary 类,NSMutableDirctionary类,OC中叫字典,字典是无序的,这个和NSArray不一样. 一.NSDirctionary类 1.创建方法 // 字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei", nil nil]; NSArray *

黑马程序员--Foundation框架之--NSArray类以及它的子类NSMutableArray类

今天我们继续来看一下Foundation框架中的NSArray类和 NSMutableArray类,NSArray类 是不可变的,NSMutableArray类是可变的. 一.NSArray类 NSArray中不可以存放基本数据类型,只能存放类的实例,如果需要将基本类型.结构体放入到数组中得话,需要通过NSNumber/NSValue进行数据的封装 同时不能在NSArray中存储nil // // main.m // 16_NSArray // // Created by waterfoxjie

【黑马程序员】————Foundation框架02常用类—字符类

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 常用类 NSString ->NSMutableString NSArray ->NSMutableArray NSSet ->NSMutableSet NSDictionary ->NSMutableDictionary NSDate NSObject 字符类-NSString/NSMutableString NSString : 不可变字符串  NSMutableString

黑马程序员--Foundation框架之--类其他常用的类:NSNumber,NSDate

------IOS培训期待与您交流! ------- Foundation的其他常用的类:NSNumber,NSDate 一.NSNumber 这个类主要是用来封装基本类型的,OC 中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去. 从这一点上我们就可以看出NSNumber是很重要的,后面一定会经常用到. 1.封包和解包 // 创建NSNumber // 封包 NSNumber *intNumber = [NSNumber numberWithI

黑马程序员-Foundation框架之数组和字典

一.Foundation框架简介 Foundation框架,顾名思义就是基础框架.基础框架上的类都是与用户界面无关的,为所有的程序开发提供一个基础.OC的基础框架常用的类包括:数组,字典,数字,字符串等以及它们的子类.要使用这个框架需要在引入头文件#import <Foundation/Foundation.h> 二.数组 NSArray类以及它的子类NSMutableArray,一个是不可变数组,一个是可变数组.下面通过代码来看一下它的一些基本的用法. 1 #import <Found

黑马程序员——Foundation框架的小总结

一.Foundation框架—结构体 一.基本知识 Foundation框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了.即#import<foundation/foundation.h> 补充:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中是OC的. 二.常用的结构体介绍及简单使用 常用的结构体: (一)NSRang的基本使用

黑马程序员——Foundation框架常用类(NSDate)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 简介 NSDate:用于保存时间值的一个OC类,同时提供了一些方法来处理一些与时间相关的事.NSDate对象用来表示一个具体的时间点.NSDate是一个类簇,我们所使用的NSDate对象,都是NSDate的私有子类的实体.NSDate存储的是GMT时间,使用的时候会根据 当前应用 指定的 时区 进行时间上的增减,以供计算或显示. NSDate 1.时间对象的基本使用 //第一种创建方式(里面存储