上通科技
1.mvvm mvc 哪个使用多,区别,数据之间如何绑定,之间持有关系,数据变化如何更新
2.runtime 理解 runloop 理解
3.RAC使用介绍 ,手动创建信号量
4.组件化路由 组建之间通讯
5.git命令 合并其他分支单条记录
6.离屏渲染,图像渲染机制
7.NSDefault sqlit 归档 区别使用
8.OC语言特性 和其他语言有啥区别,设计方面有啥特别好的
伊对
1.聊天功能架构,遇到什么问题,怎么解决的,抢座问题,弹幕如何实现的
新阅读
1.多线程打印问题
NSLog(@"1");
dispatch_queue_t queen = dispatch_queue_create("11111", DISPATCH_QUEUE_SERIAL);
dispatch_sync(queen, ^{
NSLog(@"2");
dispatch_async(queen, ^{
NSLog(@"3");
});
NSLog(@"4");
});
NSLog(@"5");
2023-12-02 12:06:07.421770+0800 1111[1917:31224] 1
2023-12-02 12:06:07.421923+0800 1111[1917:31224] 2
2023-12-02 12:06:07.422056+0800 1111[1917:31224] 4
2023-12-02 12:06:07.422202+0800 1111[1917:31224] 5
2023-12-02 12:06:07.422219+0800 1111[1917:31335] 3
打印2的时候有没有创建新线程,改成异步呢?
NSLog(@"1");
dispatch_queue_t queen = dispatch_queue_create("11111", DISPATCH_QUEUE_SERIAL);
dispatch_sync(queen, ^{
NSLog(@"2--%@",[NSThread currentThread]);
dispatch_async(queen, ^{
NSLog(@"3");
});
NSLog(@"4");
});
NSLog(@"5");
2023-12-02 12:13:11.639784+0800 1111[2367:41148] 1
2023-12-02 12:13:11.640017+0800 1111[2367:41148] 2--<_NSMainThread: 0x6000037dc500>{number = 1, name = main}
2023-12-02 12:13:11.640158+0800 1111[2367:41148] 4
2023-12-02 12:13:11.640305+0800 1111[2367:41148] 5
2023-12-02 12:13:11.640324+0800 1111[2367:41228] 3
NSLog(@"1");
dispatch_queue_t queen = dispatch_queue_create("11111", DISPATCH_QUEUE_SERIAL);
dispatch_async(queen, ^{
NSLog(@"2--%@",[NSThread currentThread]);
dispatch_async(queen, ^{
NSLog(@"3");
});
NSLog(@"4");
});
NSLog(@"5");
2023-12-02 12:12:03.463359+0800 1111[2307:39519] 1
2023-12-02 12:12:03.463600+0800 1111[2307:39519] 5
2023-12-02 12:12:03.463692+0800 1111[2307:39608] 2--<NSThread: 0x6000005e4a00>{number = 7, name = (null)}
2023-12-02 12:12:03.463814+0800 1111[2307:39608] 4
2023-12-02 12:12:03.464029+0800 1111[2307:39608] 3
2.修改控件transform 控件的frame 和bounce 如何变化
frame改变bounce不变
3.轮播图如何实现,手指一直拖着轮播不放如何做循环
4.自定义的通知中心,如何实现,怎么存储,怎么监听,详细讲讲
5.求字符串长度如何设计计算方法,如何遍历
{
NSUInteger length = 0;
for (NSUInteger i = 0; i < self.length; i++) {
int ch = [self characterAtIndex:i];
// 如果是汉字 +2
if (isascii(ch)){
length += 1;
}else{
length += 2;
}
}
return length;
}
6,多个嵌套自动释放池,存储什么表结构,怎么释放
一个程序中可以创建N个自动释放池,并且自动释放池可以嵌套,如果存在多个自动释放池,那么自动释放池会以“栈”的形式存储,先进后出
@autoreleasepool{//创建第一个自动释放池
@autoreleasepool{//创建第二个自动释放池
@autoreleasepool{//创建第三个自动释放池
}//销毁第一个自动释放池
}//销毁第二个自动释放池
}//销毁第三个自动释放池
7.copy修饰可变数组,原子锁和非原子锁
8.网络请求加密,防止中间抓包
9.一次上传多张图片,必须按顺序依次上传,如何实现
10.视频如何实现边下边播
11.卡顿原因,卡顿检测. 直播礼物解决卡顿,怎么预防奔溃
12.弹幕如何实现,开发中遇到怎么困难怎么解决的
13.内购掉单问题处理
14.NStimer 计时准确吗,为什么
15.KVO 原理 ,原类里重写了监听属性的set方法,还能监听么,原类set方法还能走么
两个方法都会走