自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 @freezed注解自动生成代码报错:Missing concrete implementations

二、重新运行代码生成命令:dart run build_runner build --delete-conflicting-outputs。一、在class前面加上abstract,定义为抽象类。

2025-09-03 15:58:27 248 1

原创 Upload Symbols Failed

然后通过dsymutil [二进制文件相对路径] -o [要输入出的dSYM文件路径]命令,输入IDLFaceSDK二进制文件的相对路径和要输出的dSYM文件相对路径,直接生成IDLFaceSDK.framework.dSYM。打开命令行工具,输入cd+空格,再将这个.xcarchive文件拖到命令行窗口里,也就是这个文件的完整路径,执行cd命令,进入到这个.xcarchive目录。第一步:进入到app的archive所在的目录,右键Show in Finder。进入到.xcarchive文件所在的目录。

2025-08-28 14:52:45 719

原创 iOS 升级JPush 5.6.1编译错误:library not found for -ljpush-ios-5.0.2

other link flag 删掉 jcore 5.0.2,重新编译。

2025-08-27 17:11:14 169

原创 This method can cause UI unresponsiveness if invoked on the main thread.

避免同步检查:永远不要在或其他主线程方法中直接使用来决定UI流程。拥抱异步回调:依赖这个委托方法来响应权限状态的变化。这是最安全、最现代的方式。按需请求:在用户意图明确(如点击相关按钮)时再请求定位权限,这样系统提示框的出现对用户来说更合情合理,通过率也更高。处理所有状态:在你的代码中妥善处理(未决定)、(已授权)、.denied(已拒绝)等所有可能的授权状态,提供良好的用户引导。

2025-08-27 11:30:29 1082

原创 iOS18报错:View was already initialized

当我们试图对一个自定义的UIView的类进行二次封装时,如果我们外层封装的类也是继承自UIView,当调用外层自定义的UIView时,就会报这个错,记住:外层类一定要继承自NSObject,不会继承自UIView。iOS开发报错:View was already initialized。因为我们里面被封装的类也是继承自UIView。

2025-08-25 16:41:47 288

原创 Mac 搭建Flutter 开发环境

最后再次打开Android studio,Android Studio原本是无法直接选择创建flutter项目的,需要先安装插件,进入到插件安装位置,选择Flutter 、 Dart进行安装。此时,打开备忘录或是其他编辑平台(终端不要关闭或退出),接着滑到终端最开始拉入Flutter路径的那一段,把Flutter路径复制出来。把刚刚下载下来解压后的flutter文件夹拖到development文件里面,如果没有解压,可以手动解压或者用命令行解压。替换好之后,复制这三行东西,回到终端,粘贴进去(如图);

2025-08-06 17:18:06 1303

原创 Xcode运行模拟器报错:symbol(s) not found for architecture x86_64

Product - Destination - Show All Run Destinations 选择 Rosetta 模拟器,比如选iPad(A16)(Rosetta),不要选iPad(A16)模拟器运行报错 : symbol(s) not found for architecture x86_64。

2025-07-01 09:41:03 466

原创 UITableViewCellContentView:height == 44 约束冲突

使用Masonry,高度自定义,出现如标题所示约束冲突。

2025-05-14 17:44:28 230

原创 Xcode报错:“Set `maskView` to `nil` before adding it as a subview of ZFMaskView

嗯,坑爹的IOS18,当你基于UIView实现的自己的子类中定义一个属性并。因为UIVIEW本身就有这个属性,你又定义一个!触发UIVIEW内部的。

2025-05-14 09:13:13 748

原创 iOS - 如何从appStore获取app版本信息

iOS从appStore获取版本信息

2025-05-13 10:42:25 868

原创 git UserInterfaceState.xcuserstate 文件频繁更新

2> 在终端键入 git rm --cached <YourProjectName>.xcodeproj/project.xcworkspace/xcuserdata/<YourUsername>.xcuserdatad/UserInterfaceState.xcuserstate。3> 提交更新,在终端键入 git commit -m "Removed file that shouldn't be tracked"1> 退出 Xcdoe,打开终端(Terminal),进入到你的项目目录下。

2025-04-16 14:58:55 719

原创 svn 分支(branch)和标签(tag)管理

svn分支和tag

2025-04-14 11:19:51 405

原创 Xcode为不同环境配置不同的环境变量

但此时这个HOST_URL在代码中还不能直接使用,需要去Ohter C Flags中做一个映射配置,在Build Settings搜索“Ohter C Flags”,然后在右侧点击展开,点“+”号对刚才在User-Defined Settings中定义的HOST_URL重新命令一下,以-D新的名称=@\"$(User-Defined Setting中的名称)\"的格式定义好,就能在代码中使用这个新的名称了。二、通过scheme,也就是多configurations。一、通过多Target。

2025-04-09 12:07:04 611

原创 视频监控APP源码

https://download.csdn.net/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 304

原创 SwiftUI TextField手动弹出键盘怎么实现?

SwiftUI TextField手动弹出键盘

2024-12-05 17:58:13 422

原创 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 407

原创 No such module ‘SwiftUIIntrospect‘

Xcode报错No such module

2024-12-03 16:11:51 773

原创 Xcode报错:Undefined symbols,Linker command failed with exit code1

Xcode报错:Undefined symbols,Linker command failed with exit code1

2024-10-11 11:01:24 1254

原创 SwiftUI List去掉row的空白块,减小行高

SwiftUI List去掉row的空白块,减小行高

2024-10-09 18:04:39 733

原创 SwiftUI实战之Page左右分页滑动

SwiftUI实战之Page左右分页滑动视图

2024-09-18 17:57:05 970 3

原创 swiftUI结构体数组修改属性UI没更新

SwiftUI无法检测到具体的更改操作

2024-09-13 15:13:44 964

原创 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 1109

原创 SwiftUI中ScrollView内部的HStack如何居中显示?

这样就达到了效果,HStack中3个Text水平居中、垂直也居中,那有人可能会问,为什么HStack外层要套个ScrollView,因为我们要做的是多标签横向tab列表,需要能滑动,如果HStack内部的Text很多的时候,要能左右滑动。最后的解决办法是:利用GeometryReader获取屏幕宽度,将HStack的最小宽度调整为父视图的宽度,也就是Scollview的宽度,也就是屏幕的宽度。如果在HStack的最左和最右别添加两个空白空间填充,也达不到效果。

2024-09-12 15:06:37 577

原创 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 594

原创 class _ContiguousArrayStorage deallocated with non-zero retain count

用队列来做, DispatchQueue,为什么用它?数组的读写操作我们可以看作是一个个事件,这些事件如果放到队列里面,就可以利用队列的同步和异步来达到互斥访问数组的目标,那么问题来了,是使用串行队列还是并行队列呢?串行队列就是指事件按照放入到队列的先后顺序来先后执行,先放进去的事件先执行,后放进去的事件后执行。分析报错原因:Swift中多线程并发读写同一个数组是不安全的,没有进行同步,造成数组的不安全操作,进而引起crash.

2024-09-05 18:35:58 443

原创 iOS多target时怎么对InfoPlist进行国际化

iOS国际化InfoPlist

2024-07-05 09:46:52 1263 2

原创 framework ‘CoreAudioTypes‘ not found

Xcode15编译报错:framework 'CoreAudioTypes' not found

2024-05-15 10:42:42 4560

原创 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 705

原创 SwiftUI去掉List样式为GroupStyle顶部的空白

SwiftUI去掉List去掉顶部的空白

2023-12-06 15:16:11 815

原创 SwiftUI - 界面布局知识点

SwiftUI

2023-11-14 18:03:02 4705

原创 SwiftUI中的@State、@StateObject、@Binding、@ObservedObject、@Environment、@EnvironmentObject等属性包装器的作用和用法

ObservedObject只是作为View的数据依赖,不被View持有,View更新时ObservedObject对象可能会被销毁,适合数据在SwiftUI外部存储,把@ObservedObject包裹的数据作为视图的依赖,比如数据库中存储的数据,当SwiftUI视图“更新”时,实际发生的是创建并显示视图的新示例。当环境变量的值发生变化时,相关的视图会自动更新。示例:在下面的示例中,我们创建一个 UserData 类,使用 @ObservedObject标记属性,在视图中观察和使用该对象的属性。

2023-09-11 17:58:01 2711 1

原创 iOS如何获取设备型号的最新方法总结

通常的做法是,先获取设备的 device model 值,再手动映射为具体的设备型号(或者直接把 device model 值传给后端,让后端去做映射,这样的好处是可以随时兼容新设备)。我们可以先获取 device model 值,记为 internalName ,然后进行对比判断,转换成具体的设备型号。每一种 iOS 设备型号都有对应的一个或多个硬件编码/标识符,称为 device model 或者叫 machine name。

2023-08-29 10:25:15 5783 2

原创 问题:UITableViewCellContentView:height == 44 约束冲突

使用Masonry自动布局,高度自定义,出现如标题所示约束冲突。

2023-08-25 14:29:27 839

转载 iOS 网络视频监控总结

iOS视频编解码

2023-07-07 15:02:13 365

原创 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 632

原创 iOS蓝牙数据解析、大小端转换、位运算

现在我们要截取最左边的0aa6这两个字节(16位),这个数据是UInt16类型,那么首先要做的就是运用上面封装好了的大小端转换方法来截取这两个字节,下面代码中的result就是所需要的数据。* 需求:result的二进制是0000 1010 1010 0110,一个16位的数字,假如与硬件工程师提前说好了,低4位(0110)代表组数,5-8位(1010)代表每组的人数。* 需要注意的是,当仅仅是解析1位数据的时候,就不需要使用像CFSwapInt16BigToHost这样的方法了,具体可以查阅代码。

2023-03-27 11:30:28 2419

原创 常用的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 14449 6

原创 iOS页面卡顿优化

AsyncDisplayKit使用

2023-03-01 10:29:31 608

转载 Git学习大全

Git学习大全

2023-02-07 16:48:50 153

转载 iOS RTMP推流+音视频编解码

iOS RTMP推流

2023-02-06 11:42:08 334

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除