当前位置: 首页 > news >正文

网站开发从入门到精通最佳磁力吧ciliba搜索引擎

网站开发从入门到精通,最佳磁力吧ciliba搜索引擎,wordpress改网址,qq营销推广方法和手段举个例子: NSString *houseOfMM [[NSString alloc] initWithString:装梵几的三室两厅]; 上面一段代码会执行以下两个动作: 1 在堆上分配一段内存用来存储装梵几的三室两厅 ,比如:内存地址为0X1111内容为 装梵几的三室两厅, 2 在栈上分配一段内存用来存储houseFo…

举个例子:

    NSString *houseOfMM = [[NSString alloc] initWithString:'装梵几的三室两厅']; 

上面一段代码会执行以下两个动作:  

1 在堆上分配一段内存用来存储@'装梵几的三室两厅' ,比如:内存地址为0X1111内容为 '装梵几的三室两厅', 
2 在栈上分配一段内存用来存储houseForWife,比如:地址为0XAAAA内容自然为0X1111
下面分别看下(assign,retain,copy): 
1.assign的情况:NSString*myHouse= [houseOfMMassign]; 
此时myHouse和houseOfMM完全相同,地址都是0XAAAA,内容为0X1111,即myHouse只是houseOfMM的别名,对任何一个操作就等于对另一个操作。因此retainCount不需要增加.(同进同出,关系好,一把钥匙,给我拿着) 
2.retain的情况:NSString* myHouse= [houseOfMMretain]; 
此时myHouse的地址不再为0XAAAA,可能为0XAABB,但是内容依然为0X1111.因此myHouse和houseOfMM都可以管理'装梵几的三室两厅'所在的内存。因此 retainCount需要增加1.(有些独立,各自进出,两把钥匙) 
3.copy的情况:NSString* myHouse= [houseOfMMcopy]; 
此时会在堆上重新开辟一段内存存放@'装梵几的三室两厅',比如0X1122,内容为@'装梵几的三室两厅',同时会在栈上为myHouse分配空间,比如地址:0XAACC,内容为0X1122,因此retainCount增加1供myHouse来管理0X1122这段内存.(两套@'装梵几的三室两厅',条件好,分居了,房子一人一套,所以钥匙一人一把。)

什么时候用assign,当然是破房子,简装的房子拉
基础类型(简单类型,原子类型):NSInteger,CGPoint,CGFloat,C数据类型(int,float,double,char等)

什么时候用copy
含有可深拷贝的mutable子类的类,如NSArray,NSSet,NSDictionary,NSData的,NSCharacterSet,NSIndexSet,NSString
(可深度拷贝的房子)
但是NSMutableArray这样的不可以,Mutable的不能用copy,不然初始化会有问题。切记


什么时候用retain
其他NSObject和其子类对象好嘛 (大多数)

ARC中的strong相当于非ARC中的retain,ARC来了以后多搞一把钥匙就strong了啦。

 

From The Objective-C 2.0 Programming Language here is how assign retain and copy will be effectively implemented by @synthesize and how they should be functionally implemented by you if not synthesized.



property = newValue;
// retain
if (property != newValue)
{
[property release];
property = [newValue retain];
}
// copy
if (property != newValue)
{
[property release];
property = [newValue copy];
}




assign, retain, copy 属性是用来指定 setter 方法的工作方式:


 assign(default) 简单的赋值, assign不会对新的值做retain. 如果使用对象类型的参数, 同时没有启用 garbage collector, 不要使用assign 

 retain:  release旧的值, 同时retain新值. 这个属性用在参数为Objective‐C对象类型时.  如果启用了garbage  collector,  它和assign作用一样.  [启用了garbage collector. release和retain什么也不做.] 

 copy: 对新值做拷贝, 把拷贝赋值给变量. 变量为string时,常用该属性.

最后,我们还可以使用nonatomic属性.  如果我们的程序是多线程的.  那么让setter方法成为 atomic 是非常重要的.

转载于:https://www.cnblogs.com/tanwen1989/p/3599921.html

http://www.lbrq.cn/news/2419975.html

相关文章:

  • 常州微信网站建设服务有链接的网站
  • 汉爱手表官方网站快手刷粉网站推广
  • 开锁做网站哪个好超级seo工具
  • wordpress会员制seo网站建设优化
  • javaee做网站安全深圳百度seo培训
  • 手机网站底部广告代码衡水seo优化
  • 个人商城网站备案火星培训机构收费明细
  • web与网站开发一样吗做网站的软件叫什么
  • 网络建站免费网址个人开发app去哪里接广告
  • 泉州网站公司自己建网站怎么建
  • 朝阳区疫情最新消息seo销售好做吗
  • wordpress 房产插件分析网站推广和优化的原因
  • 2017电商网站建设背景seo干什么
  • 阜阳建设大厦网站软文营销的特点有哪些
  • 云南网站建设公司排名独立站网站
  • 网站开发商业计划书有利于seo优化的是
  • 西安医疗网站建设北京营销网站制作
  • 好公司网站建设价格低网页推广方案
  • 建企业网站程序系统营销策划方案怎么做
  • 嘉兴网站建设咨询廊坊网络推广优化公司
  • 网站开发技术 文库百度seo多久能优化关键词
  • 企业官方网站建设运营方案宝鸡seo优化
  • 做资源共享网站百度极速版免费下载
  • 重庆网站seo分析网络营销应用方式
  • 自己建一个网站需要准备什么游戏推广平台代理
  • 微信网站建设合同网店怎么推广和宣传
  • 潍坊高端网站设计聚合搜索引擎入口
  • 建设了网站怎么管理系统排名轻松seo 网站推广
  • 网站备案域名更改公司如何做营销推广
  • 湖南茶叶网站建设官网seo哪家公司好
  • Muon小记
  • 在服务器无网络的环境下安装 VS Code Remote-SSH 组件
  • K8s与Helm实战:从入门到精通
  • 标准文件和系统文件I/O
  • AllDup(重复文件查找)v4.5.70 便携版
  • 高光谱相机有多少种类型?分别有什么特点?