No title
ios:使用自动布局约束时如何获取视图的当前宽度和高度?第一种方法:
[view layoutIfNeeded] 就会拿到设置完约束的值了
第二种方法:
No title
Swift学习记录 – Swift中throws处理方式第一种方法: “踹”
try 程序员手动捕捉异常
1234567// try方式 do { try String.init(contentsOfFile: htmlPate!, encoding: String.Encoding.utf8) } catch { //抛出异常 print(error) }
第二种方法 : “疑问踹”
try?方式 系统帮助我们处理异常 ,如果该方法出现了异常, 则方法返回nil ,如果没有异常,则返回对应的对象
1234//安全校验guard let htmlCont = try? String.init(contentsOfFile: htmlPate!, encoding: String.Encoding.utf8) else { return }
第三种方法 ...
No title
atomic 和 nonatomic1.atomic :
原子性。系统默认的属性修饰词,系统会生成
默认的属性修饰词,按官方文档上说即使从不同的线程通过getter或setter方法去访问属性也能完全的获取到或设置值,就是当线程A执行getter方法的时候(创建调用栈,返回地址,出栈),线程B如果执行setter方法,就必须先等getter 方法完成才能执行。
看Peak大神blog学的了一点:如果读写(load or store)的内存长度小于等于地址总线的长度,那么读写的操作是原子的,一次完成。比如bool,int,long在64位系统下的单次读写都是原子操作,比如int类型长度为4字节,读和写都可以通过一个指令完成,所以理论上读和写操作都是原子的。从访问内存的角度看nonatomic和atomic也并没有什么区别
2.nonatomic :
相对而言,通过nonatomic修饰的属性,并没有做锁的操作,多线程同时进行setter/getter操作,并不能保证得到一个完整的value,所以相对atomic来说nonatomic修饰的属性访问速 ...
No title
iOS UILabel 设置高度自适应,不拉伸设置两个参数约束 ,同理可以适用于宽度
1[leftlbl setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
No title
![image-20230109102728663](/Users/david/Library/Application Support/typora-user-images/image-20230109102728663.png)