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

网站怎么建设与管理app推广需要多少钱

网站怎么建设与管理,app推广需要多少钱,注册公司需要什么条件吗,摄影网站模版assign#xff1a; 简单赋值#xff0c;不更改索引计数copy#xff1a; 建立一个索引计数为1的对象#xff0c;然后释放旧对象retain#xff1a;释放旧的对象#xff0c;将旧对象的值赋予输入对象#xff0c;再提高输入对象的索引计数为1 Copy其实是建立了一个相同的对象…assign 简单赋值不更改索引计数copy 建立一个索引计数为1的对象然后释放旧对象retain释放旧的对象将旧对象的值赋予输入对象再提高输入对象的索引计数为1 Copy其实是建立了一个相同的对象而retain不是比如一个NSString对象地址为0×1111内容为”STR”Copy到另外一个NSString之 后地址为0×2222内容相同新的对象retain为1 旧有对象没有变化 retain到另外一个NSString之 后地址相同建立一个指针指针拷贝内容当然相同这个对象的retain值1 也就是说retain是指针拷贝copy是内容拷贝。在拷贝之前都会释放旧的对象。 * 使用assign: 对基础数据类型 NSInteger和C数据类型int, float, double, char,等* 使用copy 对NSString* 使用retain 对其他NSObject和其子类 1.readonly表示这个属性是只读的就是只生成getter方法不会生成setter方法2.readwrite设置可供访问级别3.retain是说明该属性在赋值的时候先release之前的值然后再赋新值给属性引用再加1。4.nonatomic非原子性访问不加同步多线程并发访问会提高性能。注意如果不加此属性则默认是两个访问方法都为原子型事务访问。 retain和copy还有assign的区别 1. 假设你用malloc分配了一块内存并且把它的地址赋值给了指针a后来你希望指针b也共享这块内存于是你又把a赋值给assign了b。此时a和b指向同一块内存请问当a不再需要这块内存能否直接释放它答案是否定的因为a并不知道b是否还在使用这块内存如果a释放了那么b在使用这块内存的时候会引起程序crash掉。 2. 了解到1中assign的问题那么如何解决最简单的一个方法就是使用引用计数reference counting还是上面的那个例子我们给那块内存设一个引用计数当内存被分配并且赋值给a时引用计数是1。当把a赋值给b时引用计数增加到2。这时如果a不再使用这块内存它只需要把引用计数减1表明自己不再拥有这块内存。b不再使用这块内存时也把引用计数减1。当引用计数变为0的时候代表该内存不再被任何指针所引用系统可以把它直接释放掉。 3. 上面两点其实就是assign和retain的区别assign就是直接赋值从而可能引起1中的问题当数据为int, float等原生类型时可以使用assign。retain就如2中所述使用了引用计数retain引起引用计数加1, release引起引用计数减1当引用计数为0时dealloc函数被调用内存被回收。4. copy是在你不希望a和b共享一块内存时会使用到。a和b各自有自己的内存。5. atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。在多线程环境下原子操作是必要的否则有可能引起错误的结果。加了atomicsetter函数会变成下面这样if (property ! newValue) {[property release];property [newValue retain];} 关于retain,copy,assign的区别问题其实困扰我很久了因为在程序中不太常用到copyassign所以三者的具体差别一直不太明白。按照我的理解assign和retain的区别就是引入了一个计数器retaincount就可以对一个内存的释放方便很多。copy就是把原来的内存复制一遍使各自都拥有一个内存这样释放的时候也不会出错。assign 简单赋值不更改索引计数Reference Counting。copy 建立一个索引计数为1的对象然后释放旧对象retain释放旧的对象将旧对象的值赋予输入对象再提高输入对象的索引计数为1使用assign: 对基础数据类型 NSIntegerCGFloat和C数据类型int, float, double, char, 等等使用copy 对NSString使用retain 对其他NSObject和其子类nonatomic非原子性访问不加同步多线程并发访问会提高性能。注意如果不加此属性则默认是两个访问方法都为原子型事务访问 property(nonatomic, retain) UITextField *userName编译时自动生成的代码- (UITextField *) userName {return userName;} - (void) setUserName:(UITextField *)userName_ {[userName release];userName [userName_ retain];} property(retain) UITextField *userName自动生成的代码 - (UITextField *) userName {UITextField *retval nil;synchronized(self) {retval [[userName retain] autorelease];}return retval;} - (void) setUserName:(UITextField *)userName_ {synchronized(self) {[userName release];userName [userName_ retain];}}  转载于:https://www.cnblogs.com/Yole58546/p/4550071.html
http://www.zqtcl.cn/news/105560/

相关文章:

  • 做兼职网站网站建设培训速成
  • 开源的网站管理系统商务网站设计与建设实训
  • 东莞三合一网站制作江阴做网站的公司有
  • mvc5 网站开发之學 pdf百度搜索引擎首页
  • 手机进入网站自动识别城阳区规划建设局网站
  • 网站开发平台的公司订票网站开发公司
  • 郑州网站推广信息网架结构厂家
  • 提升网站流量的方法汕头站扩建
  • 响应式网站建设制作需要注意什么网站建设汇卓
  • 馨雨公司网站建设策划方案一个网站能放多少关键词
  • 福州 网站开发洛阳做网站找哪家好
  • 网站建设创业书海外短视频平台
  • 网站建设的职称做h5长图网站
  • 石家庄正规制作网站公司网页版微信会在电脑上留下记录吗
  • 互联网网站界面设计 要素没有网怎么安装wordpress
  • asp 英文企业网站 免费WordPress发图册
  • 东莞搜索seo优化排名天津seo托管
  • 做网站一年大概的盈利淘宝式网站建设
  • 深圳网站优化最好的方法wordpress文章如何添加标签
  • 炫酷文字制作网站房屋和建设工程信息平台
  • 邢台企业网站制作公司wordpress 博客 安装教程
  • 西宁网站制作公司排名网站开发开题报告范文2019
  • 公司做竞拍网站的收入怎么报税网易门户网站建设
  • 网站建设投资建设一个网站成本多少
  • 如何优化网站内部链接wordpress后台无法预览文章
  • 小白一步步做网站开题报告旅游网站建设
  • 鞋帽箱包网站建设怎么给网站做外链邵连虎
  • linux网站建设模板上海发布公众号官网
  • 信息科技有限公司网站建设网站运营主要做什么
  • 广州建筑公司网站网站上的动态图怎么做