iOS经典问题

作者: yafengxn | 来源:发表于2016-02-18 20:38 被阅读187次
  • 1.为什么iOS的Masonry中的self不会循环引用?

    • http://www.jianshu.com/p/1c8b8a584910
    • block是一个对象,传入make_constraints:方法中的block是地址传递,没有进行拷贝,所以此时block是存在于栈上的,block中对self或者self.view存在强引用(而self或者self.view对block并不存在强引用),所以不会产生循环引用。当block生命周期结束时,对self或者self.view的强引用release掉
  • 2.圆角的图片的优化

    • 将图片变成圆角核心在于:防止频繁礼品渲染所引起的上下文切换,这样我们就要把要显示的内容(通常是不变的内容)缓存起来。
  • 缓存方法(针对UIImageView显示图片的情况,UIView不存在这个问题)
    方法1

    self.layer.shouldRasterize = YES;
    self.layer.rasterizationScale = [UIScreen mainScreen].scale;
    
    当使用如下方式设置圆角,并且图片较多时,加上上述两句代码可明显提高帧数,原理就是shouldRasterize 将要显示的内容缓存起来,下次直接显示。
    self.imageView1.layer.cornerRadius = self.imageView1.frame.size.width * 0.5;
    self.imageView1.layer.masksToBounds = YES;
    

    方法2
    使用绘图方法将图片裁剪为圆形并'缓存'起来,后边直接用。
    方法3
    使用遮罩将一个镂空的图形图片盖在要显示的图片上,实现圆角,缺点:图片为单色背景会比较好。

  • 3.-(void)setProduct:(NSMutableArray<NSString *> *)array

    • 3.1 OC只能在运行过程中确定array中元素类型,所以无法在编译过程中查出传入数据的合理性,编译过程不报错。
    • 3.2 OC作为一门动态语言只在运行时确定每种对象的类型,但是我们可以通过添加<type>的方法在编译期提示传入的参数不匹配,当我们在方法内部使用该array对象,为其添加一个NSNumber类型元素,编译器就会弹出类型不匹配的提示,不会报错。

相关文章

  • iOS 经典问题

    1.你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了...

  • iOS经典问题

    1.为什么iOS的Masonry中的self不会循环引用?http://www.jianshu.com/p/1c8...

  • iOS中的经典问题

    self.navigationItem.titleView不居中问题 tableview Cell 高度计算问题 ...

  • iOS经典面试题总结--内存管理

    iOS经典面试题总结--内存管理 iOS经典面试题总结--内存管理

  • iOS开发经典问题记录

    持续更新... Copy/assign/weak/stong/retain使用总结 什么情况用什么类型? @pro...

  • iOS开发中最经典的问题

    在主线程操作UI 一定要在主线程里执行UI操作,这是一个初级工程师都应该懂得的道理,但是,在实际开发中,我们往往陷...

  • iOS经典Crash分析与总结

    iOS经典Crash分析与总结

  • IOS宏用法

    iOS宏的经典用法Apple的习惯attribute iOS宏的经典用法1.常量宏、表达式宏 define kTa...

  • A valid provisioning profile for

    这是一个ios程序运行真机失败的经典错误,我想心大部分的ios开发人员都遇到。来说说我遇见这个问题怎么解决的,希望...

  • unable to install "app"

    这是一个ios程序运行真机失败的经典错误,我想心大部分的ios开发人员都遇到。来说说我遇见这个问题怎么解决的,希望...

网友评论

    本文标题:iOS经典问题

    本文链接:https://www.haomeiwen.com/subject/dywmkttx.html