下面来一起学习一下点语法的内存管理 让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网站空间、营销软件、网站建设、双清网站维护、网站推广。(一):赋值
示例代码: @property (assign)Person *person; @synthesize person=_person; 当使用retain的时候为: -(void)setPerson:(Person *)person{ if(_person!=person){ [_person release]; _person=[person retain]; } } 当使用copy的时候(必须对象要实现copy协议) -(void)setPerson:(Person *)person{ if(_person!=person){ [_person release]; _person=[person copy]; } }(二):读写性
示例代码: -(void)setPerson:(Person *)person{ @synchronized(self){ _person=person; } } //设置方法 (三):原子性
示例代码: -(Person *)person{ @synchronized(self){ return _person; } } 区别: assign:直接赋值,只是一个别名而已 retain:保留该对象,两个对象指向了同一个位置 copy:开辟了一个新的内存空间,分别指向了不同的内存位置,引用计数分别为1, 不过与之前的对象没有任何关系(特殊情况除外) 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。 文章题目:【Objective-C】OC中点语法的内存管理-创新互联 文章分享:http://cdxtjz.cn/article/ddejdh.html |