- 博客(8)
- 收藏
- 关注
原创 xcode16的线程风险
从而导致一种情况:外部调用class的async-await方法是在子线程,但是内部执行切到了主线程。所以会出现升级xcode然后加了一个await调用,但是执行线程不同这种比较大的变化。xcode16里webkit的delgate协议已经使用@MainAcotor修饰,如果在class上遵守协议,会导致整个class变成@MainActor修饰。解决:在extension遵守协议,不会导致整个class变@MainActor。以上情况前提是没有打开swift6开关,如果打开可能会有更明显的编译警告。
2025-01-29 05:01:48
140
原创 带textField的UIAlertController的约束问题
约束比较的多,我们要改的是UIAlertController.view距离顶部和底部的距离的约束,改动不大,只需要修改优先级为低。显示带textField的UIAlertController的时候竖屏转横屏,UIAlertController会被挤得很矮,小一点的屏幕的话标题和textField都会看不到。这样的话UIAlertController.view的本体高度的约束就不会被破坏,键盘实在很高的情况下,也能保持输入框的显示。一篇博客十分钟写完了,但是那个乱七八糟的约束我大概理了有三个小时😂。
2024-07-30 23:45:40
244
原创 carthage的坑
3. 手动编译报错可能会说某些库的minimum deployment target需要提高一下,但是carthage bootstrap或者update又会重新checkout代码,所以checkout文件夹里全了的话可以用carthage build --platform iOS --no-skip-current(免得有缓存又不编译)2. 一些小tips:命令行编译失败的时候打开xcodeproj文件手动编译一下,模拟器提前下载好,--platform iOS选项需要的话就加上。
2024-07-29 22:14:15
395
原创 iOS18适配
1. modalPresentationStyle = .pageSheet的情况下弹出的页面,在iOS18之前可以禁用掉拖动的手势,然后在页面内添加自己需要的手势或者监听touch事件,但是iOS18会在页面展示后把禁用掉的手势的isEnabled重新设为true,需要进一步处理,刚查到原因目前还没解决。如果在设置完index之后设置各个子VC的tabbarItem会导致选中状态消失,需要在设置index之前设置VC的tabbarItem。公司最近让测iOS18下app的问题,记录分享一下。
2024-07-24 23:27:35
4491
转载 coredata简单使用,插删改查
原博:漫步云端/** * 打开数据库 */- (void)openDB{ /* 回顾SQLite的操作方式(持久化) 1. opendb打开数据库,如果第一次运行,会在沙盒中创建数据库 2. 打开数据库之后,会生成一个数据库连接的句柄->_db,后续的数据库操作均基于该句柄
2015-12-05 17:31:42
331
原创 nsarray和nsdata互转
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"0",@"5",nil]; NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arr1]; NSArray *arr2 = [NSKeyedUnarchiver unarchiveObject
2015-12-05 17:29:15
801
原创 iOS报错日志- collectionview
*** Assertion failure in -[UICollectionView _createPreparedSupplementaryViewForElementOfKind:atIndexPath:withLayoutAttributes:applyAttributes:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_S
2015-11-25 18:04:46
671
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人