zoukankan      html  css  js  c++  java
  • OC内存管理 @property的增强

      涉及到内存管理,只读,多线程等很多功能时,setter和getter方法也就没那么简单了;当然@property依然强大,很好用;

      1:内存管理相关参数:

        *:retain:  (如果是oc对象类型),生成的setter会自动release旧值,retain新值;

        *:assign:(适用于非oc对象)  这个是默认的值

        *:copy:release旧值,copy新值;

    @property (retain) NSString *name;
    
    // 同类型的参数不能同时写
    // @property (retain, assign) NSString *name; // 错误写法
    // 但是不同类型的可以写一起
    @property (retain, readonly) NSString *name;

      2:是否生成setter

        *:readwrite :同时生成getter和setter  这是默认情况;

        *:readonly:只读,只生成getter;

      3:多线程管理

        *:nonatomic:一般用这个,不加锁的;

        *:atomic:(默认)性能低,加锁的;

      4:制定setter和getter的方法名:

      格式:如果要给setter方法制定方法名一定要加“:”(冒号)   @property (setter = abc :) int age;

      getter方法就不用了;也可以同时制定;

      一般开发中getter方法有时返回的时bool型,一般方法名会制定,以is开头;比如:isRich;

  • 相关阅读:
    CodeGen用户定义的扩展令牌
    CodeGen编写自定义表达式标记
    CodeGen CreateFile实用程序
    CodeGen融合核心关系循环扩展
    CodeGen融合核心扩展定制文件
    CodeGen API分析
    CodeGen字段循环Field Loop
    CodeGen概述
    算子扫描与递归核
    算子本质与数学函数
  • 原文地址:https://www.cnblogs.com/cxbblog/p/3721865.html
Copyright © 2011-2022 走看看