ios 面试题整理

1:__block原理:

Block不允许修改外部变量的值,这里所说的外部变量的值,指的是栈中指针的地址。要想在Block内修改“外部变量”的值,必须被__block修饰

__block修饰的变量block就会将“外部变量”在栈中的内存地址放到了堆中。无论是基本数据类型还是指针变量,都会被移到堆中,只会存在一个变量。这就是与没有被__block修饰的区别所在。所以在block内修改,还是在block后面的外面修改都是修改堆中的变量。

2:一个像素值占用的存储空间

取决于像素类型,类型决定了这个像素点包含的信息量以及是否采用了压缩技术

如果是非黑即白的二值图像,不压缩情况下,一个像素只需要1个bit,显然,1和0两种状态,分别对应黑和白。

如果是256种状态的灰度图像,不压缩的情况下一个像素需要8bit(1字节,256种状态)。

如果用256种状态标识屏幕上某种颜色的灰度,而屏幕采用三基色红绿蓝(RGB),不压缩的情况下一个像素需要占用24bit(3字节),这个就是常说的24位真彩色。

还有各种其他的存储方式,例如15bit、16bit、32bit 。

如果考虑到压缩,区别是有损压缩还是无损压缩,具体采用哪种压缩算法,会影响到一个像素占用的存储空间

3:autorelease原理和autorelease和runloop的结合使用

这个是iOS原理了

4.AVPlayer 监控缓存进度?

5.swift 范型

6.简单介绍一下你熟悉的一个算法?

7.二进制重排

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值