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.二进制重排