UI基础 OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对局部变量是只读的 苹果官方建议尽量多用block.在多线程.异步任务.集合遍历.集合排序.动画转场用的很多 Blocks的定义 Blocks的定义: int (^MySum)(int, int) = ^(int a, int b) { re
Person *person1=[[Person alloc]initWithName:@"Kenshin"]; Person *person2=[[Person alloc]initWithName:@"Kaoru"]; Person *person3=[[Person alloc]initWithName:@"Rosa"]; NSMutableArray *array1=[NSMutab
for (int i = 0; i < [array count]; i++) { [array removeObjectAtIndex:i]; } 上面的遍历由于在remove操作之后array count的值也在不断改变,所以会导致无法完全删除元素. 正确的删除操作如下: for (id obj in array) { [array removeObject:obj]; } 如果你需要同时获得数组的索引,可以利用NSMutableIndexSet先保存需要删除的元素,遍历完成后统一删除
lldb报错:Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x7f9a5a47dda0> was mutated while being enumerated.' bug代码: //判断是否存在,存在就删除 for (NSDictionary *dic in userAccountPwdMutalDatas) { if ([dic obj