iOS数组使用】的更多相关文章

相关链接: ios数组基本用法和排序 NSArray 排序汇总 iOS 数组排序方法 IOS-筛选数组内的元素 关于EnumerateObjectsUsingBlock和for-in之间的较量 [iOS开发技术]NSPredicate谓词的用法 数组过滤…
IOS数组.字典.NSNumber 新写法—— @[].@{}   //标准写法 NSNumber * number = [NSNumber numberWithInt:]; NSArray * array = [NSArray arrayWithObjects:@"one", @"two", nil]; NSDictionary * dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1&qu…
iOS开发中需要大量对dictionary和array进行操作,因此我们需要一种更加安全可靠的操作方法来避免不必要的crash.当然可以通过自定义dictionary 和array重载增删改查的方法来避免crash,但是由于许多工程基本成型以后,如此操作的话工作量,改动等都会很大.此时我们可以利用OC语言动态特性对数组和字典的增删改查方法进行Method Swizzling(不懂得自行百度吧) ,替换成我们经过安全操作的方法,从而进行安全操作.当然有好多大神已经实现过了,但是毕竟会用并不代表是自…
本文转载至 http://blog.csdn.net/xunyn/article/details/7882087 iosobjective cuser框架通讯 IOS项目中会用到对通讯录的联系人或是会员按姓名为关键字排序,因为NSArray并不直接支持对汉字的排序,这就要通过将汉字转换成拼音完成按A~Z的排序,这看起来是个头疼的问题,因为牵扯到汉字转为拼音,kmyhy给出一个较易实现的方法,获取汉字的首字的首字母,如将“王”变成“W”,完整文章(传送门). 其中他通过pinyinFirstLet…
参考:https://blog.csdn.net/u011619283/article/details/53135502 常见crash 原因是数组在移除元素后,继续遍历会有越界问题. 解决思路: 遍历和移除不再同一个数组就可以了. 法1: 把待移除元素放到新数组,遍历完成后统一移除. 法2: 遍历过程移除后,下标-1操作,下标控制与遍历控制要分开 法3: 使用iOS 中数组 mutableCopy 特性, 被操作数组mutableCopy一份进行遍历,此时遍历数组与原数组元素内存地址一致. 查…
NSInteger sortObjects(id obj1, id obj2,void *context) { NSMutableString * str1 = [[NSMutableString alloc]initWithString:obj1]; if (CFStringTransform((__bridge CFMutableStringRef)str1, 0, kCFStringTransformMandarinLatin, NO)) { } NSMutableString * str…
此文是对数组NSArray与NSMutableArray知识点的总结,主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:Foundation中数组(NSArray)是有序的对象集合 b:NSArray只能存储Objective-C的对象,而不能存储像int.float这些基本数据类型,但是Objective-C对C兼容,所以在Objective-C程序中,仍然可以使用C的数组来存储基本数据类型 c:NSArray一旦创建便不可以再对…
1. 数组的常用处理方式 //--------------------不可变数组 //1.数组的创建 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; //(1) NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSLog(@"%@",a…
1. 数组的常用处理方式 //--------------------不可变数组 //1.数组的创建 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; //(1) NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSLog(@"%@",a…
NSMutableSet *set=[NSMutableSet set]; [_list enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { [set addObject:obj[@"MeasureType"]];//利用set不重复的特性,得到有多少组,根据数组中的MeasureType字段 }]; [set enumerateObjectsUsingBlock:^(id obj, BOOL *stop…
我们先来看看有可能会出现的数组越界Crash的地方. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { WelfareItem *item = [_datasourceArray objectAtIndex:indexPath.row];//有可能会越界,你在下拉刷新时会用[_datasourceArray removeAllObjects],这时你又点了某个…
/*! * 将字典或者数组转化为JSON串 * * @param theData <#theData description#> * * @return <#return value description#> */ + (NSString *)toJSONData:(id)theData{ NSString * jsonString = @""; if (theData != nil) { NSData *jsonData = [NSJSONSerializa…
1.创建数组 // 创建一个空的数组 NSArray *array = [NSArray array]; // 创建有1个元素的数组 array = [NSArray arrayWithObject:@"123"]; // 创建有多个元素的数组 array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil nil]; NSArray *array3 = [array array…
在iOS开发过程中,使用json抓取网络数据进行解析时,用tableview承载,发现数据已经抓取到,但是在cell里面使用却会导致程序崩溃 原因可能是初始化方法问题,将 _infoArray=[[NSMutableArray array]; 改成 _infoArray=[[NSMutableArray alloc]init]; 初学者尽量使用实例方法初始化…
方法一: NSArray *sortArray = [arrayM sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { SDHomeNewTaskModel *model1 = obj1; SDHomeNewTaskModel *model2 = obj2; if ([model1.distance floatValue] > [model2.distance floatValue]) { return NSOrd…
1. 上面方法已经可以避免crash,为了避免冗余的代码,写一个NSArray的分类,利用runtime替换NSArray的对象方法objectAtIndex:,在这里进行判断,捕获异常: #import <Foundation/Foundation.h> @interface NSArray (Crash) @end /*** ---------------分割线--------------- ***/ #import "NSArray+Crash.h" #import…
一.数组.  数组只能存放对象类型的数据  2.数组中的对象是有序的 (index)     (一)可变数组   NSArray:NSObject  不可变数组 作用:容器类 存放的是对象类型的数据,不可变数组,创建的时候是什么样就是什么样,不能对数组做插入.修改.删除等操作.       1.存数据         NSArray *arr1 =[[NSArray alloc]initWithObjects:@"zhangSan",@"liSi",@"小…
一.数组排序 数组排序方式1: //初始化可变数组 NSMutableArray *arr1=[NSMutableArray arrayWithObjects:@"giu",@"min",@"Deng",@"liumin", nil]; //字符串排序 //创建排序描述符对象NSSortDescriptor,key为空,ascending:升序 NSSortDescriptor *decri =[NSSortDescripto…
1.求数组的 交集,并集,差集 NSArray *array1 = @[@"1",@"2",@"3"]; NSArray *array2 = @[@"1",@"5",@"6"]; NSMutableSet *set1 = [NSMutableSet setWithArray:array1]; NSMutableSet *set2 = [NSMutableSet setWithArray:…
一: 去重 有时需要将NSArray中去除重复的元素,而存在NSArray中的元素不一定都是NSString类型.今天想了想,加上朋友的帮助,想到两种解决办法,先分述如下. 1.利用NSDictionary的AllKeys(AllValues)方法 可以将NSArray中的元素存入一个字典,然后利用AllKeys或者AllValues取得字典的所有键或值,这些键或值都是去重的. 示例代码: NSArray *arr = @[@111,@222,@111]; NSMutableDictionary…
今年上半年打算巩固一下基础知识,将工作和学习中遇到的疑惑尽量搞清楚原理.作为一个菜鸟级别的程序员,我深深的体会到算法和基础的重要性,如果说算法是内功,那么基础就是下盘,只有下盘稳住了,上面才不会轻易倒.当然,我这里刻意避开算法不谈,实际上我知道自己不是研究算法的料,想来懂一些基本的算法就好了,以后若是遇到莫大的机缘,习得一两本内功心法,那时我可能要上天了.哈哈,不晓得能不能听懂我的胡言乱语. 之前遇到过一个问题,从数据库中读数据后发现有重复的数据出现,而且读数据库是采取一次性读完的方式,从理论上…
本文转载至 http://blog.csdn.net/zhaopenghhhhhh/article/details/24972645 有时需要将NSArray中去除重复的元素,而存在NSArray中的元素不一定都是NSString类型.今天想了想,加上朋友的帮助,想到两种解决办法,先分述如下. 1.利用NSDictionary的AllKeys(AllValues)方法 可以将NSArray中的元素存入一个字典,然后利用AllKeys或者AllValues取得字典的所有键或值,这些键或值都是去重的…
//最近新发现的一个数组去重,用不着循环,一句代码搞定 //去除数组中重复的 NSArray *oldArr = @[@"1",@"2",@"3",@"4",@"5",@"6",@"2",@"3"]; NSArray *newarr = [oldArr valueForKeyPath:@"@distinctUnionOfObjects.s…
http://blog.csdn.net/daiyelang/article/details/18726947 1.创建数组 // 创建一个空的数组 NSArray *array = [NSArray array]; // 创建有1个元素的数组 array = [NSArray arrayWithObject:@"123"]; // 创建有多个元素的数组 array = [NSArray arrayWithObjects:@"a", @"b", …
/*******************************************************************************************NSArray /*---------------------------创建数组------------------------------*///NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@&qu…
数组越界就是假如你的下标总数现在为32个,然后你在下一秒又执行了一个方法要从50个数据里进行赋值啊筛选之类的,而你此时数组里的值为32个,50的数据还没有请求到,往往会出现数组越界的崩溃信息,大概是这样的 -[__NSArrayI objectAtIndex:]: index 100 beyond bounds [0 .. 9]' 具体的解决方式我们通常会选择吧数组做个判断入return nil; 虽然在大多数情况下是可以的,但是多少并不严谨,如果你设置了一个事件循环执行的nstimer而你的数…
对于一个数组 NSArray *array = @[@"111",@"222",@"333",@"444",@"555",@"666",@"777",@"888",@"999",]; NSInteger count =array.count; 1.for循环 for (NSInteger i=0; i<count; i++…
比如有一个数组: NSArray *arr = @["]; 倒过来排序: arr = [[arr reverseObjectEnumerator] allObjects]; NSMutableArray *accountArr = [NSMutableArray arrayWithContentsOfFile:filePath]; self.accountArr = (NSMutableArray *)[[accountArr reverseObjectEnumerator] allObject…
1.创建数组 // 创建一个空的数组 NSArray *array = [NSArray array]; // 创建有1个元素的数组 array = [NSArray arrayWithObject:@"123"]; // 创建有多个元素的数组 array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil]; NSArray *array3 = [array arrayByAd…
NSMutableArray *components = [messageStr componentsSeparatedByString:@"*"] ; 反过来为 NSStrig *str = [components componentsJoinedByString:@"*"];…