zoukankan      html  css  js  c++  java
  • Objective-C不能以new开头命名属性

    ARC是在Xcode4.2推出的方便内存管理的一个特性,支持OS10.6及iOS4以后版本。引入ARC之后,相对应的内存管理使用方面做了必要的调整,这里不一一赘述;其中有一项就是文章题目说的,为了与手动内存管理交互,不能以new开头命名属性(非必须的情况下就不要使用了,官方文档肯定有其道理),除非重新定义getter方法。代码如下:

    官方示例:

    //Won't work

    @property NSString *newTitle;

    //Works:

    @property(getter=theNewTitle) NSString *newTitle;

    这个原因的本质是编译器工作时,会对newTitle属性生成一个_newTitle方法,这个_newTitle应该就是newTitle的getter方法,但是命名约定声明一个名称以new返回的方法是调用者的实例对象,这就和getter方法相矛盾,类似的还有alloc、copy,都不能以其为属性的开头。

  • 相关阅读:
    JavaSE Day11
    JavaSE Day10
    JavaSE Day9
    JavaSE Day8
    JavaSE Day7
    a
    js 操作 字符串
    委托的生明与使用
    T-SQL 的简单查询语句
    asp.net服务控件的生命周期
  • 原文地址:https://www.cnblogs.com/xuanyishare/p/8658399.html
Copyright © 2011-2022 走看看