OC-字典-省市区-省数组套省字典套市数组套市字典套区数组

省市区
OC-字典-省市区-省数组套省字典套市数组套市字典套区数组
数据文件:省市区TXT(数据)文件

 NSString *str = [NSString stringWithContentsOfFile:@"area.txt" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@", str);
NSArray *arr = [str componentsSeparatedByString:@"\n"];
NSLog(@"%@", arr);
// 创建省数组
NSMutableArray *sArr = [NSMutableArray array];
// 遍历
for (NSString *temp  in arr) {
    if (![temp hasPrefix:@"  "]) {
       // 创建省字典
        NSMutableDictionary *sDic = [NSMutableDictionary dictionary];
        // 添加省名字
        [sDic setObject:temp forKey:@"Sname"];
        // 添加市数组
        [sDic setObject:[NSMutableArray array] forKey:@"cities"];
        // 省字典添加到省数组
        [sArr addObject:sDic];
    }
    if ([temp hasPrefix:@"  "] && [temp hasPrefix:@"   "] ) {
        // 创建市字典
        NSMutableDictionary *CitDic = [NSMutableDictionary dictionary];
        // 添加市名
        [CitDic setObject:temp forKey:@"Cname"];
        // 添加区数组
        [CitDic setObject:[NSMutableArray array] forKey:@"disname"];
        // 获取当前省
        NSMutableDictionary *sDic = sArr.lastObject;
        // 获取市数组
        NSMutableArray *cArr = [sDic objectForKey:@"cities"];
        // 区数组添加到市数组
        [cArr addObject:CitDic];
        
    }
    if ([temp hasPrefix:@"    "]) {
        // 获取当前省
        NSMutableDictionary *sDic = sArr.lastObject;
        // 获取当前市数组
        NSMutableArray *cArr = [sDic objectForKey:@"cities"];
        // 市字典
        NSMutableDictionary *cDic = cArr.lastObject;
        // 添加区数组
        NSMutableArray *disArr = [cDic objectForKey:@"disname"];
        //
        [disArr addObject:cArr];
        
        
    }
    
    NSLog(@"%@", temp);
}

屏幕快照 2016-01-06 上午10.43.31.png
屏幕快照 2016-01-06 上午10.43.50.png
屏幕快照 2016-01-06 上午10.44.42.png

OC-字典--添加 修改 删除 查询等等

分别有三个文件
.mian.m

int main(int argc, const char * argv[]) {

// 创建学生
Student *stu1 = [[Student alloc]initWithName:@"卞一" sex:@"男" age:@"20"];
Student *stu2 = [[Student alloc] initWithName:@"YIem" sex:@"男" age:@"20"];
Student *stu3 = [[Student alloc]initWithName:@"YI" sex:@"男" age:@"20"];
Student *stu4 = [[Student alloc]initWithName:@"Bian" sex:@"男" age:@"20"];
// 创建学生组
NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:stu1, nil];
NSMutableArray *arr2 = [NSMutableArray arrayWithObjects:stu2, stu3, nil];
NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:stu4, nil];
// 创建字典
NSMutableDictionary *contdic = [NSMutableDictionary dictionaryWithObjectsAndKeys:arr1, @"V", arr2, @"Y", arr3, @"B", nil];
// 添加联系人到匹配的分组
Student *stu5 = [[Student alloc] initWithName:@"BIanYI" sex:@"男" age:@"20"];
// 通过字典找到对应的数组
NSMutableArray *arr5 = [contdic objectForKey:@"B"];
// 将对象添加到对应数组
[arr5 addObject:stu5];
// 创建联系人/数组/Key
Student *stu6 = [[Student alloc]initWithName:@"Bianyi" sex:@"男" age:@"20"];
// 点M里方法实现 这里调用点M
[stu6 addStu:stu6 contdic:contdic];
// forin遍历字典
for (NSString *key in contdic) {
    // 通过key得到数组
    NSMutableArray *arr = [contdic objectForKey:key];
    // 遍历数组
    for (Student *stu in arr) {
        // 得到对象
        [stu info];
    }
}


NSLog(@"%@", contdic.allKeys);
return 0;

}
屏幕快照 2016-01-05 下午8.26.36.png



- 阅读剩余部分 -

OC-可变字典(NSMutableDictionary)操作

OC-可变字典(NSMutableDictionary)操作

// 可变字典创建
NSMutableDictionary *mdic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"卞一", @"name", @"男", @"sex", @"啪啪啪", @"hobby", nil];
NSLog(@"%@", [mdic objectForKey:@"name"]);
// 创建空字典(开辟空间)
NSMutableDictionary *mdic_1 = [NSMutableDictionary dictionary];
// 添加/修改
[mdic setObject:@"YIem" forKey:@"name_name"];
NSLog(@"%@", [mdic objectForKey:@"name_name"]);
// 删除
[mdic removeObjectForKey:@"name"];
NSLog(@"%@", [mdic objectForKey:@"name"]);
// 查询-访问
NSLog(@"%@", [mdic objectForKey:@"sex"]);

屏幕快照 2016-01-05 下午7.25.29.png

OC-不可变字典(NSDictionary) 操作

OC-不可变字典(NSDictionary) 操作

// 不可变字典 创建
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"卞一", @"name", @"男", @"sex", @"啪啪啪", @"hobby", nil];
// 访问数组中的元素 (key访问)
NSLog(@"%@", [dic objectForKey:@"name"]);
// 访问所有的key
NSLog(@"%@", dic.allKeys);
// 遍历字典中所有的元素
    // for循环遍历
for (NSInteger i = 0; i < dic.allKeys.count; i++) {
    NSString *key = [dic.allKeys objectAtIndex:i];
    NSLog(@"%@", [dic objectForKey:key]);
}
    // forin快速枚举
for (NSString *key in dic) {
    NSLog(@"%@", [dic objectForKey:key]);
}

屏幕快照 2016-01-05 下午7.26.03.png

创建可变数和不可变数组的中文创建方法

创建可变数和不可变数组的中文方法

// 中文版
NSArray *阿尔 = @[@"AAA"];
NSLog(@"%@", 阿尔);
NSLog(@"%ld", 阿尔.count);
NSArray *卞一 = @[@"YIem", @"YI", @"Bian",@"ccc"];
NSLog(@"%ld", 卞一.count);

NSString *第一个值 = [卞一 firstObject];
NSLog(@"%@", 第一个值);
NSLog(@"%@", [卞一 lastObject ]);

NSString *连接数组中的所有字符串 = [卞一 componentsJoinedByString:@"--"];
NSLog(@"%@", 连接数组中的所有字符串);

屏幕快照 2016-01-05 上午8.52.37.png

可变数组和不可变数组的快速创建-修改-赋值-替换-判断等等

可变数组和不可变数组的快速创建-修改-赋值-替换-判断等等

NSArray *arr = @[@"aa", @"bb", @"cc", @"dd", @"ff", @"ee", @"gg"];
//  获取数组的元素个数
NSLog(@"%ld", arr.count);
// 根据下标获取每一个元素
NSLog(@"%@", [arr objectAtIndex:2]);
// 根据元素获取下标
NSLog(@"%ld", [arr indexOfObject:@"dd"]);
// 获取数组的第一个值
NSLog(@"%@", arr.firstObject);
// 获取数组的最后一个值
NSLog(@"%@", arr.lastObject);
// 是否包含某个元素
NSLog(@"%hhd", [arr containsObject:@"ff"]);
// 连接数组中的字符串
NSLog(@"%@", [arr componentsJoinedByString:@"--"]);
///
// 可变数组
NSMutableArray *mArr = [NSMutableArray arrayWithObjects:@"aaa", @"bbb", @"ccc", @"ddd", @"eee", @"fff", nil];
// 添加一个元素
[mArr addObject:@"ggg"];
NSLog(@"%@", mArr);
// 插入元素
[mArr insertObject:@"hhh" atIndex:2];
NSLog(@"%@", mArr);
[mArr removeObject:@"bb"];
NSLog(@"%@", mArr);
[mArr exchangeObjectAtIndex:1 withObjectAtIndex:3];
NSLog(@"%@", mArr);

屏幕快照 2016-01-05 上午8.50.14.png

可变数组的各种操作,添加-修改-删除-替换

可变数组的各种操作

// 可变数组
NSMutableArray *mArr = [NSMutableArray arrayWithObjects:@"aaa", @"bbb", @"ccc", @"ddd", @"eee", nil];
// 添加一个元素
[mArr addObject:@"fff"];
NSLog(@"%@", mArr);
// 添加数组(对象)
[mArr addObject:arr];
NSLog(@"%@", mArr);
// 添加数组(数组)
[mArr addObjectsFromArray:arr];
NSLog(@"%@", mArr);
// 获取数组中 数组/对象(数组)
NSLog(@"%@", mArr[6][3]);
// 下标插入元素
[mArr insertObject:@"YIem" atIndex:1];
NSLog(@"%@", mArr);
// 删除元素
[mArr removeObject:@"fff"];
NSLog(@"%@", mArr);
// 交换元素
[mArr exchangeObjectAtIndex:1 withObjectAtIndex:11];
NSLog(@"%@", mArr);

// 遍历
for (id temp in mArr) {
    NSLog(@"%@", temp);
}

屏幕快照 2016-01-05 上午8.48.02.png

创建不可变数组,对其的各种操作,取值赋值

创建不可变数组,对其的各种操作

  // 创建数组
NSArray *arr = @[@"aa", @"bb", @"dd", @"12", @"ff"];
// 获取数组对象个数
NSLog(@"%ld", arr.count);
// 获取下标是X 的对象
NSString *name = [arr objectAtIndex:2];
NSLog(@" %@", name);
// 获取对象下标
NSInteger index = [arr indexOfObject:@"bb"];
NSLog(@"%ld", index);
// 取第一个值
NSString *f = [arr firstObject];
NSLog(@"%@", f);
// 取最后一个值
NSString *l = [arr lastObject];
NSLog(@"%@", l);
// 是否包含某一个对象
BOOL a = [arr containsObject:@"bb"];
NSLog(@"%d", a);
// 连接数组中的字符串
NSString *newArr = [arr componentsJoinedByString:@"---"];
NSLog(@"%@", newArr);
// 将字符串分割
NSArray *separArr = [newArr componentsSeparatedByString:@"---"];
NSLog(@"%@", separArr);

屏幕快照 2016-01-05 上午8.45.21.png

OC 数组 创建字符串- 长度- 替换- 比较- 转换-判断

// 1. 创建一个不可变字符串 str
// 2. 输出 str 的长度
// 3. 将 str 中的所有 'i' 都替换为 'x'
// 4. 比较 str 和 "sample" 字符串的大小, 输出较小的一个.
// 5. 将 str 转为可变字符串 mutableStr
// 6. 判断 mutableStr 长度, 如果大于10个字符, 取得10个字符之后的字符串
// 7. 判断 mutableStr 后缀, 如果后缀不是".png", 在可变字符串后面拼接一个字符串".png" (关键字fix)
{
    // 1.
    NSString *str = @"zhangsanlisiwangwu";
    
    // 2.
    NSLog(@"字符串长度: %ld", [str length]);
    
    NSString *replaceStr = [str stringByReplacingOccurrencesOfString:@"i" withString:@"x"];
    // 3.
    NSLog(@"字符串替换: %@", replaceStr);
    
    // 4.
    NSComparisonResult result = [str compare:@"simple"];
    
    if (result == NSOrderedDescending) {
        NSLog(@"较小的是: simple");
    } else if (result == NSOrderedAscending) {
        NSLog(@"较小的是: %@", str);
    }
    
    // 5.
    NSMutableString *mutableStr = [NSMutableString stringWithString:str];
    
    // 6.
    
    if (mutableStr.length > 10) {
        NSString *subStr = [mutableStr substringFromIndex:10];
        
        NSLog(@"下标10之后的字符串是: %@", subStr);
    }
    
    // 7.
    
    if (![mutableStr hasSuffix:@".png"]) {
        NSString *appendStr = [mutableStr stringByAppendingString:@".png"];
        NSLog(@"字符串拼接: %@", appendStr);
    }
    
    
}

请输入图片描述

OC 不可变数组的 方法集合

// 获取数组的元素个数( 多用于遍历)
NSLog(@"array元素个数: %ld", array.count);

/// 获取某一个元素

NSString *name = [array objectAtIndex:0];
NSLog(@"array获取某一个元素%@", name);
// C 语言形式的取值
NSLog(@"%@", array[2]);

/// 对象获取下标

// 第一种方法
NSInteger index = [array indexOfObject:@"YIem"];
NSLog(@"%ld", index);
// 第二种方法
NSLog(@"%lu", [array indexOfObject:@"YIem"]);

///** 取第一个值

NSString *firstName = [array firstObject];
NSLog(@"第一个值: %@", firstName);

///** 取最后一个值

NSString *laatName = [array lastObject];
NSLog(@"获取最后的/最新的: %@", laatName);

///** 是否包含某个对象

BOOL a = [array containsObject:@"YIem"];
NSLog(@"%d", a);

请输入图片描述