[2]姥爷幽默谈Objective-C(数组和字典)
来源:互联网 发布:java开发在公司好痛苦 编辑:程序博客网 时间:2024/05/04 14:13
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 字典
0 0
- [2]姥爷幽默谈Objective-C(数组和字典)
- [5]姥爷幽默谈Objective-C-字符串(NSString)
- [2]姥爷幽默谈Objective-C(getter,setter,init 方法、和类方法以及常用数据类型的介绍)
- [1]姥爷幽默谈Objective-C(Objective-C起源,对象,类,方法)
- [7]姥爷幽默谈Objective-C-属性@property,类别Category
- [8]姥爷幽默谈Objective-C-继承,多态,封装
- [4]姥爷幽默谈Objective-C-SEL的详细用法(封装方法)
- [6]姥爷幽默谈Objective-C-文件操作类NSFileManager,NSFileHandle
- #Objective-C 之 省市区 (数组-字典-数组-字典-数组)
- objective-C省市区数组套字典,字典套数组存入。
- #Objective-C 经典字典数组排序 - 省市区
- #Objective-C 经典字典数组排序 - 省市区
- 字典对象(NSDictionary 和 NSMutableDictionary)-Objective-C
- 字典对象(NSDictionary 和 NSMutableDictionary)-Objective-C
- Objective-C 字典的基本用法(NSDictionary和NSMutableDictionary)
- Objective-C中遍历字典、数组和集合的几种常见方式
- Objective-C实现一个基于数组下标[index]和字典[@"key"]的访问模式
- Objective-c 字典对象 (NSDictionary 和 NSMutableDictionary )
- HDU 1089.Ignatius's puzzle【数学题】【2016年1月2】
- 十步图解CSS的position
- java web学习(基础篇)一 从Servlet开始说起
- RubyGems rvm相关命令的使用
- android DrawerLayout
- [2]姥爷幽默谈Objective-C(数组和字典)
- ARM LR寄存器
- 给Smartisan OS的建议和反馈-1
- centos 设置双网卡,双网关
- mysql触发器
- vi查找到关键字后怎么取消这个关键字的颜色?
- 工厂三兄弟之简单工厂模式(二)
- Servlet传递数据方式
- struct 的使用...#include <string.h>...char*strcpy(char *, const char *);