zoukankan      html  css  js  c++  java
  • 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/
     
     
     
  • 相关阅读:
    day20(顺时针打印矩阵)
    day18(树的子结构)
    JAVA WEB应用
    hexo 写作
    解决
    Github构建个人主页之写作
    Github构建个人主页之建站
    hive HQL数据库操作笔记02
    python scrapy爬虫笔记01
    spark笔记01
  • 原文地址:https://www.cnblogs.com/ygm900/p/4105381.html
Copyright © 2011-2022 走看看