ios之快速枚举

for(UIView * subView in self.view.subviews)

{

if([subView isKindOfClass:[XYZSeniorQueryView class]])

{

[subView removeFromSuperview];

subView = nil;//错误

}

}

错误提示信息:

Fast enumeration variables can‘t be modified in ARC by default;declare the variable __strong to allow this

 

也就是说:

快速枚举变量在ARC下默认不能修改其引用属性,声明变量为__strong允许这样。

按照提示修改上面的语句:

for(__strong UIView * subView in self.view.subviews)

或者

for(UIView __strong * subView in self.view.subviews)

这样就可以正常运行了。

另外,OC中有一个专门的快速枚举的迭代器类NSEnumerator,这个类的使用方法如下:

//得到一个对应的enumerator对象

 NSEnumerator * enumerator = [self.view.subviews reverseObjectEnumerator];

for(UIView * views = [enumerator nextObject];;)//遍历

{

if([views isKindOfClass:[XYZSeniorQueryView class]])

{

[views removeFromSuperview];

views = nil;

}

}

转:http://lqcjdx.blog.163.com/blog/static/20748924120139501547298/

时间: 2024-11-06 17:32:07

ios之快速枚举的相关文章

6、iOS快速枚举

今天在写程序的时候想在当前视图跳转的时候释放掉当前视图上面add的一些子视图.因为add的子视图有些是在别的类里面add进来的,当前页面不知道自己当前有哪几个类型的子视图.这样,我就想到了用循环遍历来查看当前视图有没有符合条件的子视图,如果有的话就释放掉. 我是这样写的: for(UIView * subView in self.view.subviews) { if([subView isKindOfClass:[XYZSeniorQueryView class]]) { [subView r

NSDictionary使用快速枚举方法

上一章我们通过一个枚举器访问并返回字典里的键值, 现在我们通过快速枚举来查找键对应的值. 涉及到的方法: objectForKey: 这个方法的意思是返回一个值给对应的键, 下面使用了两次这个方法, 第一次没在循环里面使用, 输入了值@"1", 对应的值就是@"One". PS: 在这里, 我们找到了键, 就代表找到了值. 下面是例子: #import <Foundation/Foundation.h> int main(int argc, const

ObjectC----字典类和集合类以及快速枚举和OC中的数组排序

// Create By 郭仔  2015年04月01日20:06:36 // 不可变字典 // 字典是适用于存放键值对的一种集合,里面的元素必须是对象类型 // 字典是无序的 // 字典赋值 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"guozai",@"name",@"nan",@"sex",@"14",@"

IOS 字典快速转换为Model

一般情况下IOS得局部页面加载的过程是,创建一个Model然后,将Nib文件与Model进行关联,然后能够快速的获取到Nib文件上的控件实例.操作生成页面. 但是原生的内容是没有直接通过Json获取Model只能生成字典.然后转换为Model.下列方法就是通过字典来转换为Model的过程. 将字典转换为Model -(BOOL)reflectDataFromOtherObject:(NSDictionary *)dic { unsigned int outCount, i; objc_prope

iOS UITableView 快速滚动(索引方式实现)

参考:http://my.oschina.net/joanfen/blog/204503 思路:UITableView一次性加载数据过多时,需要滑动多次触底.想通过索引实现快速滑动,索引中加载20个空点.用户在最右端滑动时,索引框显示,当触及索引点时指向其想对应的UITableView的RowIndex来实现快速滚动.这方法有缺陷:普通滑动时滚动条被遮盖了. 主要代码: //获取数据 -(void)getTableData{ dispatch_async(dispatch_get_global_

Objective-C中快速枚举和数组排序

快速枚举 for (<#type *object#> in <#collection#>){ } object是遍历得到的元素对象,collection是集合类型的对象:数组,字典,集合. 数组枚举得到数组中的元素对象. 字典枚举得到字典中的key值. 集合枚举得到集合中的元素对象. 1 // 数组 2 NSArray *arr = [NSArray arrayWithObjects:@"iPhone", @"demaxiya", @&quo

NSArray的快速枚举使用方法

快速枚举法创建数组: 快速枚举法的原理和枚举差不多, 只是写法更加的简单明了. 快速枚举法一样需要先创建一个不可变数组, 然后通过快速枚举, 将数组里面的元素逐个打印出来. 下面让我们来看看详细的例子: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *array = [[NSArray alloc]initWithObjects:@&q

最高科技——快速枚举约数

求数\(n\)的最小的约数\(r\),使\(r\)满足性质\(P\),这些性质满足这样的一个条件:若有\(d|r\)满足性质\(P\),则有\(r\)也满足\(P\). 首先\(O(\sqrt{n})\)直接暴力枚举因数显然可行,然而我们有更快的方法. 设\(n=p_1^{k_1}p_2^{k_2}\ldots p_m^{k_m}\) 我们先从大到小枚举数\(w_1\),使其成为最小的\(w_1\)使得\(t=p_1^{w_1}p_2^{k_2}\ldots p_m^{k_m}\)满足\(P\)

iOS UIView 快速修改 frame,

在iOS开发布局修改 frame 时需要繁琐的代码实现,今天偶尔看到一播客说到快速修改的 frame 的方法,自己动手写了一遍实现代码. 快速实现主要通过 添加类目的方式,对UIView 控件添加了一些直接修改 frame 属性的方法(如:获取高度.宽度,坐标等);具体代码实现如下: .h文件,声明要用到的属性 1 // 2 // UIView+Layout.h 3 // Layout 4 // 5 // Created by Ager on 15/10/18. 6 // Copyright ©