iOS的发展,对开发者来说,无疑在技术层面上给了不少的考验,因此开发者必须通过不断学习新知识来完善自己。先将iOS开发的关键词奉献给各位,希望对各位的工作和学习有帮助。
知识一:概念
① 浅Copy:指针的复制,只是多了一个指向这块内存的指针,共用一块内存。
② 深Copy:内存的复制,两块内存是完全不同的,也就是两个对象指针分别指向不同的内存,互不干涉。
③ atomic是Objc使用的一种线程保护技术,主要是防止代码还没有写完就被另外一个线程读取,造成数据错误。但这种机制由於比较耗费系统资源,所以在iphone这种小型设备上,如果没有使用多线程间的通讯编程,那麽nonatomic是一个非常好的选择。
知识二:各种属性的解析
1、 weak:<修饰Object类型,ARC下修饰delegate属性>
① 在ARC环境下,所有指向这个对象的weak指针都将被置为nil。
② 修饰Object类型,修饰的对象在释放後,指针地址会被置为nil,是一种弱引用。
2、assign:< 用於非指针变量。用於基础数据类型 (例如NSInteger)和C数据类型(int, float, double, char, 等),另外还有id >
用於对基本数据类型进行复制造操作,不更改引用计数,也可以用来修饰对象。
3、copy:修饰NSString、NSArray、NSDictionary等有对应可变类型的对象。
是内容拷贝,会在内存里拷贝一份对象,两个指针指向不同的内存地址。
4、strong:ARC下的strong等同於MRC下的retain都会把对象引用计数加1。
在ARC环境下,只要某一对象被一个strong指针指向,该对象就不会被销毁。
5、retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
在MRC中,你需要自己retain一个想要保持的对象,ARC环境下就不需要了。
知识三:属性之间区别
① strong与weak的区别
strong类似於retain,会将对象的引用计数器+1,分配内存地址。
weak类似於指针,只是单纯的指向某个地址,但是本身并未分配内存地址。当指向的地址被销毁时,该指针会自动nil。
② assign和weak的区别
对於assign来说,一是非指针变量,比如说NSInteger之类的基础数据类型、C数据类型,还有就是避免出现循环引用的时候,
对於weak,其和assign差不多,但是它多了一点,就是,它会自动对该类型变量设置为nil。
在iOS开发中,你可能会遇到了不少的弯路,但是只要用心去学,很快就能避免这些弯路,在开发的道路上走得更加顺畅。
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/40464.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除