zoukankan      html  css  js  c++  java
  • iOS 属性的set方法 _string = string;是什么意思?

         发现最近自己特别悲剧,可能是因为地基没打好,直接学习的怎么建房子,可是地基已经修订了,所以房子都是按照地基去建的承重墙啊,一些简单的隔断墙,也是地上讯息。反而是一些基础中的基础,总是被抬到台案上来。
         今天算是忍不住了,比如写一个属性:
    @property (nonatomic, assign) NSInteger selectedIndex;
    set方法:
    - (void)setSelectedIndex:(NSInteger)selectedIndex {
         _selectedIndex = selextedIndex;     
    }
         前面那个_selectedIndex还真不能保准的说一下是啥意思,这种问题,不会有面试官问我,但是我会自己问自己,因为自己哪里不行,自己心里明白,无聊的时候,还是很想搞清楚明白的。
         查了一下,没有相关资料,可能是因为搜索词条不准确,但是也找到了些信息,对我有帮助。_selectedIndex是系统给我们自动生成的,只要写了@property形式的属性,这个_selectedIndex变量就会自动生成,那么赋值给他的那个值,selectedIndex我们知道,都是在给这个属性赋值的外来值,比如self.selectedIndex = 5;
         这里要说一下,self.selectedIndex就是调用了selectedIndex的set方法,你调用了set方法,本身就想赋值,那么你想赋值的这个值就是5;
         那么此时你可以不给系统的那个_selectedIndex赋值,但是你在出了set方法以外的地方使用selectedIndex属性,这个值就没有值。我去试一下。挺开心的,因为事实说明,确实是这样,如果你不给赋过来的值selectedIndex再传给系统为我们自动创建的_selectedIndex,那么别的地方使用,将不会有值。无论使用self.selectedIndex还是使用_selectedIndex,都没有值,当然了,Bool类型初始值1或YES,NSInteger类型初始值0,但是这个值不是你赋给过来的。
         从此点意义来讲,_selectedIndex的意思就是系统给我们自动创建了一个全局的变量,方便在set方法以外去使用,如果你不给他赋值,别处使用将没有值。
     
         其实,说实话,无论是从开发时间,还是说当前年份,我出这样的文章,真是丢人啊!算了,我就把丢人的文章发出去。
  • 相关阅读:
    利用反射技术修改类中的字段(成员变量的反射)
    Java长存!12个Java长久占居主要地位的原因
    撰写架构设计文档的心得体会
    做个正能量的程序员
    程序员如何提高自己的编程水平
    mysql查询优化
    MySQL修改最大连接数,没有my.ini文件,只有my-default,这怎么改呀?
    PDO 拿出來的 Float 數據跟数据库中的数据不匹配
    大量多级分类数据的获取、缓存、搜索查询 怎么设计最快 ?
    windows下MySQL5.6以上版本,如何通过修改配置文件来修改数据库的最大连接数啊?
  • 原文地址:https://www.cnblogs.com/guoqiangx-5/p/5886057.html
Copyright © 2011-2022 走看看