常见iOS开发关键词的区别

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联系删除

(0)
Inspirr的头像Inspirr订阅用户
上一篇 2022年6月12日 23:48
下一篇 2022年6月12日 23:48

相关推荐

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息