1.数组
1)NSArray,不可变数组是指不能进行增删改等的操作的数组。NSArray的创建原则上是有2中方法,一种是通过带参数的init方法创建`NSArray *array = [[NSArray alloc]initWithObjects:@"1", @"2", @"3", @"4", nil];`,一种是用带参数的类方法创建 `NSArray *array = [NSArray [NSArray arrayWithObjects:@"甲", @"乙", @"丙", @"丁", nil];`还有一种不过它只不过是OC2.0之后的简写,事实上他在底层还是调用上一种方法进行创建的,`NSArray array* = @[@"1",@"2"];`
// 通过带参数的init方法创建
NSArray *array = [[NSArray alloc]initWithObjects:@"1", @"2", @"3", @"4", nil];
// 用带参数的类方法创建
NSArray *array = [NSArray [NSArray arrayWithObjects:@"甲", @"乙", @"丙", @"丁", nil];
// OC2.0之后的简写,事实上他在底层还是调用上一种方法进行创建的.
NSArray array* = @[@"1",@"2"];
2)数组的遍历,最常用的俩种方法是for和forin增强for循环或许OC中不是这么念的但是功能是一样的。
// 第一种方式for循环
for (int i = 0; i < array.count; i++){
NSLog(@"%@",[array objectAtIndex:i]);
}
// 第二种forin 循环
for (NSString *temp in array){
NSLog(@"%@",temp);
}
// 第三种OC2.0简写法
NSArray *array3 = @[@"一", @"二", @"三", @"四"];
for (int i=0; i<array3.count; i++) {
NSLog(@"%@", array3[i]);
}
3)NSNumber包装类,用于把基本类型包装成类,用于满足某些特定要求。
NSNumber*myNumber,*floatNumber,*intNumber,*number1;
//创建integer类型对象
intNumber = [NSNumber numberWithInteger:123];
NSLog(@"%i",[intNumber integerValue]);
//创建long类型对象
myNumber = [NSNumber numberWithLong:0xababab];
NSLog(@"%lx",[myNumber longValue]);
//创建char类型对象
myNumber = [NSNumber numberWithChar:'K'];
NSLog(@"%c",[myNumber charValue]);
//创建float类型对象
floatNumber = [NSNumber numberWithFloat:123.00];
NSLog(@"%f",[floatNumber floatValue]);
//创建double类型对象
myNumber = [NSNumber numberWithDouble:112233e+15];
NSLog(@"%lg",[myNumber doubleValue]);
4)NSMutableArray,可变数组长度,可对数组进行增删改查等操作。它的创建其实和NSArray差不多只不过是NSMutable在用init方法创建时完全可以使用无参的init方法进行创建并初始化,但是NSArray如果要用无参的话,这个数组那么就没有意义了。着重介绍一下NSMultable的增删改查操作,见代码!
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建一个有初始内容的可变数组
//参数是数组的初始内容,最后一个参数后必须是nil。
NSMutableArray *array1 = [[NSMutableArray alloc]initWithObjects:@"one", @"two", @"three", @"four", @"five", nil];
NSLog(@"数组的初始内容");
for (NSString *element in array1) {
NSLog(@"%@", element);
}
//在数组下标0处插入元素@"Zero"
[array1 insertObject:@"Zero" atIndex:0];
//在数组末尾插入一个元素
[array1 addObject:@"Six"];
//删除数组array1下标0的元素
[array1 removeObjectAtIndex:0];
//删除数组array1最后一个元素
[array1 removeLastObject];
//删除数组array1的全部元素
[array1 removeAllObjects];
[array1 addObject:@"ZERO"];
//把array1替换下标为0的元素替换为@"zero"
[array1 replaceObjectAtIndex:0 withObject:@"zero"];
//NSUInteger是一个宏,表示无符号整数,在32位系统里占4个字节,在64位系统里占8个字节
//查找某个元素在数组中的下标
NSUInteger index = [array1 indexOfObject:@"aa"];
if (index == NSNotFound) {
NSLog(@"要查的元素不存在");
} else {
NSLog(@"index: %lu", index);
}
//=======================================
//用类方法创建一个空的可变数组
NSMutableArray *array2 = [NSMutableArray array];
[array2 addObject:@"zero"];
//用类方法创建非空的(有初始值)的可变数组
NSMutableArray *array3 = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
[array3 addObject:@"5"];
}
return 0;
}
2.字典,用于存储键值成对的数据!
NSDictionary 不可变字典 NSMutableDictionary 可变字典
Key(键) Value(值)
姓名 lucy
年龄 110
性别 女
NSString 对象 字符串 数组
键值对 成对出现的 有一个键 (key)就有 一个值(Value)
在一个字典中 Key值 “sex” 名字不能重复 只能有一个 不能重复
一、不可变字典
字典是链式的结构 不是顺序的 没有取下标的方法1、字典的创建 //不可变字典的创建
NSDictionary * dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"lucy",@"姓名", @"18",@"年龄",@"10",@"体重",nil];
2、字典键值对个数 [dic count];
3、所有的keys 获得 NSArray* keysArray=[dic allKeys];
4、所有values获得 //字典全部values获得 NSArray* valuesArray = [dic allValues];
二、可变字典NSMutableDictionary
继承自NSDictionary 键值对可以改变 数量
1、创建方法
类方法创建
增
//增加 一对键值对
[dic setObject:@"TianFL" forKey:@"address"];
NSLog(@"%@",dic);
//当 key值 已经有了的时候 再写就是改写了
[dic setObject:@"500" forKey:@"size"];
删
//删除某全部的键值对
[dic removeAllObjects];
//删除某一个键值对
[dic removeObjectForKey:@"size"];
改
//当 key值 已经有了的时候 再写就是改写了
[dic setObject:@"500" forKey:@"size"];
查NSLog
for in 打印键
2、找某一个键之下的值 name - >lucy
//根据键Key 去找值Value
id value = [dic objectForKey:@"name"];
NSLog(@"%@",value);
去银行查询账户信息
带身份证 ->全部的信息 字典 key 身份证号码 value 字典
银行卡 ->全部的信息 字典 key 身份证号码 value 字典