`
luckliu521
  • 浏览: 258855 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

object-c:property,assign,copy,retain,release区别

 
阅读更多
例子:
@property(nonatomic,retain) NSString *aString;

property:属性的定义,相当于C语言的setter和getter方法。
assign:简单的赋值,不更改索引的计数。
copy:建议一个索引计数为1的对象,然后释放旧对象;
retain:释放旧对象,将旧对象的值赋予新对象,再增加新对象的索引计数1。

针对具体的数据类型在属性定义应该这样选择:
使用assign:对基础的数据类型,比如NSInterger,CGFloat和C数据类型(int,float,double,char等等)。
使用copy:针对NSString;
使用retain:针对NSObject及其子类。
使用nonatomic:单线程,防止在写未完成的时候被另外一个线程读取,造成数据读取出错。
使用release:基于一般的初始化,使用alloc和init关键词初始化的,要在恰当的地方release掉,全局变量在dealloc方法里面release,常规变量在不需要的时候就要释放掉。
分享到:
评论

相关推荐

    babel-plugin-object-assign:用扩展助手替换 Object.assign 的 Babel 插件

    Babel 的 Object.assign 插件 用扩展助手替换Object.assign() Babel 插件。 当您想要在没有本机支持的情况下扩展浏览器中的对象时,有助于减少对额外 polyfill 或库的需求。 感谢@sebmck 的实现。 用法 而不是使用...

    object-assign-symbols:Object.assign polyfill 与 Symbols shams 兼容

    在 nodejs 或 browserify 上: npm install get-own-property-symbols --savenpm install object-assign-symbols --save并确保这些都包括在内: var getOwnPropertySymbols = require ( 'get-own-property-symbols'...

    filter-object-assign:将指定的键扩展到给定的对象

    安装npm install filter-object-assign --save例子 var assign = require ( 'filter-object-assign' )var stats = { health : 100 , manna : 100}var wizard = { name : 'Hilbert' , health : 75}assign ( stats , ...

    前端开源库-es-object-assign

    **前端开源库-es-object-assign** 是一个针对JavaScript编程中的对象合并问题的开源库,它在ES2015(也称为ES6)环境中提供了一种友好的解决方案。在JavaScript中,对象是引用类型,因此直接复制对象时,只会复制...

    auto-assign-review-teams:GitHub 分配审核团队的操作

    自动分配审核团队分配个人或成员如果启用了团队的,则团队分配效果最佳示例用法 name : " Assign Reviewers "on : pull_request : types : [opened, ready_for_review] jobs : assign-reviewers : runs-on : ubuntu-...

    babel-plugin-transform-replace-object-assign:允许您在babel构建中提供Object.assign的自定义实现

    babel插件转换替换对象分配 将Object.assign替换为您在插件配置中提供的自定义实现。 该插件的工作方式与插件类似,不同之处在于,它允许您提供自己的实现(而不是Babel使用的_extends帮助器)来替换Object.assign ...

    前端开源库-reapp-object-assign

    "reapp-object-assign"是一个这样的开源库,它专注于对象的复制与合并,是JavaScript编程中的一个实用工具。这个库是针对Reapp框架优化的,Reapp是一款用于构建原生移动应用的框架,其设计灵感来源于React,但更倾向...

    object-assign:Object.assign() 实现

    ES6 Object.assign() 的实现; 安装 $ bower 安装 es6-object-assign 用法 var oa = new ObjectAssign ( ) ; var t = { name : "lisa" , age : 25 } ; var r = { speak : function ( ) { console . log ( 'Hello, ...

    谷歌地图 delphi 封装库 2013 0.1.9 全面支持google maps api

    - Improvement: TLinkedComponent => added FObject (TObject) property. - Improvement: TLinkedComponent => added protected methods (SetProperty) to generalize change into properties to avoid duplicate ...

    Object-C语言教程、案例、相关项目资源《PPT文档》

    Object-C,作为苹果公司开发的Objective-C(通常简写为ObjC)是一种基于C语言的面向对象编程语言,是iOS和macOS等Apple平台上的主要开发语言。它在C语言的基础上增加了Smalltalk风格的消息传递机制,为开发者提供了...

    ios_assign,retain和copy详解

    在iOS开发中,Objective-C语言提供了@property关键字来声明属性,并且可以在属性声明时指定不同的内存管理行为,主要涉及到assign、retain和copy这三个关键字。为了深入理解这三者的区别,首先需要了解Objective-C的...

    auto-author-assign:GitHub动作

    # .github/workflows/auto-author-assign.yml name : ' Auto Author Assign ' on : pull_request_target : types : [opened, reopened] jobs : assign-author : runs-on : ubuntu-latest steps : - uses : ...

    Object-C语言教程0220.zip

    **Object-C语言教程详解** Objective-C(简称Obj-C或Objective-C)是苹果公司基于C语言构建的一种面向对象的编程语言,广泛应用于iOS和Mac OS X操作系统。本教程将深入探讨Object-C的基础概念、语法特性以及实际...

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    @property(nonatomic, assign) NSInteger age; - (void)printName; - (void)printAge; @end @implementation MyClass - (void)printName { NSLog(@"Name: %@", self.name); } - (void)printAge { NSLog(@"Age: ...

    Object-C期末复习_object-c_

    **Object-C期末复习指南** Objective-C(简称ObjC)是一种基于C语言的、面向对象的编程语言,主要用于苹果的iOS和macOS操作系统开发。在学习和准备Objective-C的期末复习时,我们需要掌握以下几个核心概念和知识点...

    object-schema:JavaScript对象mergevalidation实用程序

    当您需要验证复杂的数据结构然后以比Object.assign()更复杂的方式合并它们时,这将很有用。安装您可以使用任一npm进行安装: npm install @humanwhocodes/object-schema或纱线: yarn add @humanwhocodes/object-...

    Flash脚本代码大全

    - 示例:`for (var property in object) { /* 循环体 */ }` 12. **Function(定义函数)** - 功能:定义一个可复用的函数。 - 示例:`function functionName(arg1, arg2) { /* 函数体 */ return result; }` 13....

    Object-C语言入门教程&代码示例 .pdf

    ### Object-C语言入门教程知识点详解 #### 一、基础语法 **1.1 变量与数据类型** 在Object-C中,你可以定义不同类型的变量,包括但不限于整型(`int`)、浮点型(`float`、`double`)、字符型(`char`)和字符串...

    deep-object-assign-with-reduce:与 Object.assign() 具有相同函数签名的对象的深度合并(用于覆盖默认选项对象)

    受到deep-assign和对更深层次Object.assign的需求的启发。 没有依赖关系,而且非常小——gzip 压缩后只有大约 450 字节。 安装 需要 10+,它带有npm 。 在您的项目目录中,键入: npm install deep-object-...

    object-assign_Objectassign_

    《深入理解JavaScript中的Object.assign与对象合并》 在JavaScript中,`Object.assign`是一个非常实用的方法,用于合并多个源对象的属性到一个目标对象中。这个功能在开发过程中经常被用到,特别是在处理数据合并、...

Global site tag (gtag.js) - Google Analytics