- 博客(107)
- 收藏
- 关注
原创 视频监控APP源码
https://download.youkuaiyun.com/download/a12358391/10937612?ops_request_misc=%257B%2522request%255Fid%2522%253A%25226e60b52fa3708bcce2c1160b90b29195%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=6e60b52fa3708bcce2c1160b90b29
2025-03-08 20:44:05
176
原创 Xcode:Publishing changes from within view updates is not allowed, this will cause undefined behavior
Publishing changes from within view updates is not allowed, this will cause undefined behavior
2024-12-05 17:26:32
236
原创 Xcode报错:Undefined symbols,Linker command failed with exit code1
Xcode报错:Undefined symbols,Linker command failed with exit code1
2024-10-11 11:01:24
764
原创 Xcode报错:No exact matches in reference to static method ‘buildExpression‘
Xcode编译报错:Type '()' cannot conform to 'View',No exact matches in reference to static method 'buildExpression'
2024-09-12 18:24:12
801
原创 SwiftUI中ScrollView内部的HStack如何居中显示?
这样就达到了效果,HStack中3个Text水平居中、垂直也居中,那有人可能会问,为什么HStack外层要套个ScrollView,因为我们要做的是多标签横向tab列表,需要能滑动,如果HStack内部的Text很多的时候,要能左右滑动。最后的解决办法是:利用GeometryReader获取屏幕宽度,将HStack的最小宽度调整为父视图的宽度,也就是Scollview的宽度,也就是屏幕的宽度。如果在HStack的最左和最右别添加两个空白空间填充,也达不到效果。
2024-09-12 15:06:37
436
原创 Xcode报错:Return from initializer without initializing all stored properties
我们自定义 init 方法,在 init 中直接赋值 @Binding 会失败,但是直接赋值给Binding类型的变量却正常,说明@Binding并不等同于Binding,使用Binding时要调用wrappedValue,有点麻烦,但是使用@Binding时init初始化方法又报错,怎么解决?),而且参数类型要改成Binding修饰。因此我们在赋值的时候直接赋值给真实的存储变量就可以了。属性包装器默认生成的真实变量名是在名称前加下划线(
2024-09-10 17:13:19
510
原创 class _ContiguousArrayStorage deallocated with non-zero retain count
用队列来做, DispatchQueue,为什么用它?数组的读写操作我们可以看作是一个个事件,这些事件如果放到队列里面,就可以利用队列的同步和异步来达到互斥访问数组的目标,那么问题来了,是使用串行队列还是并行队列呢?串行队列就是指事件按照放入到队列的先后顺序来先后执行,先放进去的事件先执行,后放进去的事件后执行。分析报错原因:Swift中多线程并发读写同一个数组是不安全的,没有进行同步,造成数组的不安全操作,进而引起crash.
2024-09-05 18:35:58
320
原创 framework ‘CoreAudioTypes‘ not found
Xcode15编译报错:framework 'CoreAudioTypes' not found
2024-05-15 10:42:42
3479
原创 Xcode报错:This app needs to be updated by the developer to work on this version of iOS
Simulator device returned an error for the requested operation.This app needs to be updated by the developer to work on this version of iOS. Failed to find matching arch for input file: /Users/hand5/Library/Developer/CoreSimulator/Devices/9C8AD1B6-50BE-4F3
2024-03-27 15:00:47
540
原创 SwiftUI中的@State、@StateObject、@Binding、@ObservedObject、@Environment、@EnvironmentObject等属性包装器的作用和用法
ObservedObject只是作为View的数据依赖,不被View持有,View更新时ObservedObject对象可能会被销毁,适合数据在SwiftUI外部存储,把@ObservedObject包裹的数据作为视图的依赖,比如数据库中存储的数据,当SwiftUI视图“更新”时,实际发生的是创建并显示视图的新示例。当环境变量的值发生变化时,相关的视图会自动更新。示例:在下面的示例中,我们创建一个 UserData 类,使用 @ObservedObject标记属性,在视图中观察和使用该对象的属性。
2023-09-11 17:58:01
2261
1
原创 iOS如何获取设备型号的最新方法总结
通常的做法是,先获取设备的 device model 值,再手动映射为具体的设备型号(或者直接把 device model 值传给后端,让后端去做映射,这样的好处是可以随时兼容新设备)。我们可以先获取 device model 值,记为 internalName ,然后进行对比判断,转换成具体的设备型号。每一种 iOS 设备型号都有对应的一个或多个硬件编码/标识符,称为 device model 或者叫 machine name。
2023-08-29 10:25:15
4971
2
原创 问题:UITableViewCellContentView:height == 44 约束冲突
使用Masonry自动布局,高度自定义,出现如标题所示约束冲突。
2023-08-25 14:29:27
756
原创 iOS极光推送Xcode直接编译运行App能收到极光推送,通过ad-hoc打包ipa安装到手机上收不到推送
2, 通过ad-hoc和AppStore上架这两种方式下载的ipa包安装到手机上,对应的app是生产环境,那这时Java后台APNS这个参数也需要配置为ture,app才能收到推送通知;1,通过Xcode直连编译运行的App肯定是开发环境,这时候不管你是通过手动签名还是自动签名,Java后台APNS这个参数也需要配置为false,app才能收到推送通知;
2023-04-26 17:04:50
532
原创 iOS蓝牙数据解析、大小端转换、位运算
现在我们要截取最左边的0aa6这两个字节(16位),这个数据是UInt16类型,那么首先要做的就是运用上面封装好了的大小端转换方法来截取这两个字节,下面代码中的result就是所需要的数据。* 需求:result的二进制是0000 1010 1010 0110,一个16位的数字,假如与硬件工程师提前说好了,低4位(0110)代表组数,5-8位(1010)代表每组的人数。* 需要注意的是,当仅仅是解析1位数据的时候,就不需要使用像CFSwapInt16BigToHost这样的方法了,具体可以查阅代码。
2023-03-27 11:30:28
2101
原创 常用的RTMP、RTSP、HTTP协议流直播流地址
苹果点播计数器:http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8。西瓜播放器:http://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv。动画片:https://media.w3.org/2010/05/sintel/trailer.mp4。
2023-03-23 11:27:31
12611
6
原创 RxSwift技术
RxSwift是响应式编程框架,通过异步和数据流来构建事务关系,核心体现就是观察和被观察者https://blog.youkuaiyun.com/qq_14920635/article/details/114981760
2022-05-24 16:30:07
155
原创 iOS自动打包上传至蒲公英
参考文章:fastlane自动打包上传到蒲公英 - 简书打包报错时可以查看log日志:sudo find /private/var -name "*.xcdistributionlogs"
2022-05-17 16:58:12
380
原创 CUICatalog: Invalid asset name supplied: ‘‘
项目运行过程中一直在打印一个log:CUICatalog: Invalid asset name supplied: '',产生这个log的原因是[UIImage imageNamed:@""]传了一个空字符串来获取图片,如果全局搜索要花不少时间才能查到,后面找到一个比较好的方式,通过象征性断点Symbolic breakpoint可以快速定位错误代码位置,按如果步骤进行:第一步:增加Symbolic breakpoint断点第二步:Symbol后面输入“[UIImage imageNamed:
2022-03-04 16:04:28
908
原创 UILabel文字缩进
重构前需要考虑以下几个方面:第一点:全面的了解系统的过去,包括以前的架构/技术背景、业务需求第二点:查看至少80%的核心代码,最好有一定时间的真实在以前代码基础上编码的经历第三点:分析以前架构的问题,例如:可维护性低、在哪个方面已经不满足现有需求等等有了上面几点后还需要搞一个有效地重构计划,保证重构有条不紊的进行,才不会出现重构没有动力或者无法推动,或者与其他的业务需求冲突。...
2021-11-11 14:57:12
536
原创 iOS百度人脸识别打包上传AppStore报错
遇到这种问题,解决方式如下:(1) 删除com.baidu.idl.face.faceSDK.bundle中的文件 A:com.baidu.idl.face.faceSDK B:Info.plist 如下图所示(2)删除com.baidu.idl.face.live.action.image.bundle中的 文件A:com.baidu.idl.face.live.action.image 文件B:Info.plist 如下图所示:(3)删除com.baidu.idl.face.mode...
2021-10-21 14:09:58
1357
原创 Mac磁盘合并成融合硬盘
1,开机后立马按住Command+R+Option键;2,等待两三分钟后,选择Wifi网络,输入Wifi密码,然后连接网络,如果电脑已经连接了有线网络,则跳过此步骤;3,在强出的菜单列表上选择“磁盘工具”;4,在新的菜单页面上点左上角的“显示所有设备”;5,可以看到在“内置”下面显示了两个磁盘所在的上级菜单;6,选中SSD(sata磁盘)的上级菜单,然后点“抹盘”;7,选中HDD(闪存)的上级菜单,然后点“抹盘”;8,抹完之两个磁盘之后,关机;9,重新开机,同样按住Comma
2021-07-23 15:17:24
16416
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人