zoukankan      html  css  js  c++  java
  • iOS类实现里面怎么用属性

          属性(properity)是一个很好用的东西,简单而直接。Objective-C还创建了一个点语法来帮助大家使用。根据以前C++的习惯,类外访问实例变量时,最好通过getter/setter方法,也就是说通过属性来做,那么类内部实现呢?

          我们要明确一个,C语言的编程哲学是“凡是程序员写的,就是他要的”,这是C的设计思想,深入骨髓,当然也就在Objective-C里面继承了下来。

          所以在回答在类内部实现时用哪种方法之前,我们要具体而详细的了解这两种方法的不同。有不少Objective-C的入门书里面会有意无意的灌输“这两者 没有任何区别,仅仅是编译器帮你省一点实现代码”这个概念,不得不说,这个未免过于粗糙了,对于一个int型变量来说确实如此,但对于一个对象来说情况就 复杂了,对象是retain呢还是copy呢?对于直接用实例变量来说,没有给出任何明确地行为——这就意味着对象仅仅指向了一个新值,既没有释放旧对 象,也没有retain新对象,这往往会带来内存方面的问题。另外,如果这样直接的赋值,也不会触发KVO。

          不过直接使用实例变量效率会优于使用属性,所以在类的实现里面综合起来是王道,也就是说:读取实例变量直接操作,不使用属性的点语法;写实例变量则使用属性的点语法。这样既避免了内存问题,KVO问题,也尽可能的提高了效率。

  • 相关阅读:
    1052 Linked List Sorting (25 分)
    1051 Pop Sequence (25 分)
    1050 String Subtraction (20 分)
    1049 Counting Ones (30 分)
    1048 Find Coins (25 分)
    1047 Student List for Course (25 分)
    1046 Shortest Distance (20 分)
    1045 Favorite Color Stripe (30 分)
    1044 Shopping in Mars (25 分)
    1055 The World's Richest (25 分)
  • 原文地址:https://www.cnblogs.com/cubeTC/p/3791272.html
Copyright © 2011-2022 走看看