- 博客(100)
- 收藏
- 关注
原创 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 554
原创 SwiftUI中ScrollView内部的HStack如何居中显示?
这样就达到了效果,HStack中3个Text水平居中、垂直也居中,那有人可能会问,为什么HStack外层要套个ScrollView,因为我们要做的是多标签横向tab列表,需要能滑动,如果HStack内部的Text很多的时候,要能左右滑动。最后的解决办法是:利用GeometryReader获取屏幕宽度,将HStack的最小宽度调整为父视图的宽度,也就是Scollview的宽度,也就是屏幕的宽度。如果在HStack的最左和最右别添加两个空白空间填充,也达不到效果。
2024-09-12 15:06:37 302
原创 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 387
原创 class _ContiguousArrayStorage deallocated with non-zero retain count
用队列来做, DispatchQueue,为什么用它?数组的读写操作我们可以看作是一个个事件,这些事件如果放到队列里面,就可以利用队列的同步和异步来达到互斥访问数组的目标,那么问题来了,是使用串行队列还是并行队列呢?串行队列就是指事件按照放入到队列的先后顺序来先后执行,先放进去的事件先执行,后放进去的事件后执行。分析报错原因:Swift中多线程并发读写同一个数组是不安全的,没有进行同步,造成数组的不安全操作,进而引起crash.
2024-09-05 18:35:58 218
原创 framework ‘CoreAudioTypes‘ not found
Xcode15编译报错:framework 'CoreAudioTypes' not found
2024-05-15 10:42:42 1615
原创 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 383
原创 SwiftUI中的@State、@StateObject、@Binding、@ObservedObject、@Environment、@EnvironmentObject等属性包装器的作用和用法
ObservedObject只是作为View的数据依赖,不被View持有,View更新时ObservedObject对象可能会被销毁,适合数据在SwiftUI外部存储,把@ObservedObject包裹的数据作为视图的依赖,比如数据库中存储的数据,当SwiftUI视图“更新”时,实际发生的是创建并显示视图的新示例。当环境变量的值发生变化时,相关的视图会自动更新。示例:在下面的示例中,我们创建一个 UserData 类,使用 @ObservedObject标记属性,在视图中观察和使用该对象的属性。
2023-09-11 17:58:01 1927 1
原创 iOS如何获取设备型号的最新方法总结
通常的做法是,先获取设备的 device model 值,再手动映射为具体的设备型号(或者直接把 device model 值传给后端,让后端去做映射,这样的好处是可以随时兼容新设备)。我们可以先获取 device model 值,记为 internalName ,然后进行对比判断,转换成具体的设备型号。每一种 iOS 设备型号都有对应的一个或多个硬件编码/标识符,称为 device model 或者叫 machine name。
2023-08-29 10:25:15 4058 1
原创 问题:UITableViewCellContentView:height == 44 约束冲突
使用Masonry自动布局,高度自定义,出现如标题所示约束冲突。
2023-08-25 14:29:27 662
原创 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 453
原创 iOS蓝牙数据解析、大小端转换、位运算
现在我们要截取最左边的0aa6这两个字节(16位),这个数据是UInt16类型,那么首先要做的就是运用上面封装好了的大小端转换方法来截取这两个字节,下面代码中的result就是所需要的数据。* 需求:result的二进制是0000 1010 1010 0110,一个16位的数字,假如与硬件工程师提前说好了,低4位(0110)代表组数,5-8位(1010)代表每组的人数。* 需要注意的是,当仅仅是解析1位数据的时候,就不需要使用像CFSwapInt16BigToHost这样的方法了,具体可以查阅代码。
2023-03-27 11:30:28 1856
原创 常用的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 10882 6
原创 RxSwift技术
RxSwift是响应式编程框架,通过异步和数据流来构建事务关系,核心体现就是观察和被观察者https://blog.csdn.net/qq_14920635/article/details/114981760
2022-05-24 16:30:07 143
原创 iOS自动打包上传至蒲公英
参考文章:fastlane自动打包上传到蒲公英 - 简书打包报错时可以查看log日志:sudo find /private/var -name "*.xcdistributionlogs"
2022-05-17 16:58:12 346
原创 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 706
原创 UILabel文字缩进
重构前需要考虑以下几个方面:第一点:全面的了解系统的过去,包括以前的架构/技术背景、业务需求第二点:查看至少80%的核心代码,最好有一定时间的真实在以前代码基础上编码的经历第三点:分析以前架构的问题,例如:可维护性低、在哪个方面已经不满足现有需求等等有了上面几点后还需要搞一个有效地重构计划,保证重构有条不紊的进行,才不会出现重构没有动力或者无法推动,或者与其他的业务需求冲突。...
2021-11-11 14:57:12 450
原创 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 1308
原创 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 15431 2
原创 SDWebImage加载多张图片时内存暴增
最近项目中遇到一个问题在tableview上展示多张图片,在加载的过程中,图片过多时,加载几张图片就崩溃了。内存溢出 为什么会出现这种情况这个原因其实很明显,SDWebImage产生的图片缓存过多,造成APP内存溢出,崩溃了。有三个解决办法:方法一: 然后更改图片的大小,在tableview中展示缩略图,点击查看的时候显示原图。减少由于加载原图而占用过多的内存。...
2021-05-08 17:22:53 1932
原创 ios image drawInRect内存暴增
在UIImage处理中,时常会使用到drawInRect方法,但是缺点是内存占用过大,且造成内存泄漏无法回收。这一点是因为对象持有,导致不能及时释放的原因。多调用几次这个方法,内存就暴增。所以,目前我采用的方式是,将UIImage对象本地缓存成图片,然后正常释放对象UIGraphicsEndImageContext();接着传递出去缓存UIImage的路径进行读取。这样内存释放问题就处理了,多次调用这个方法也不会出现内存无法回收的问题。尽管网络上查找问题的答案,autoRelease释放池也无法处
2021-04-20 14:30:00 1239 4
原创 iOS开发者账号最新续费流程
续费流程:第一步:在iOS设备上验证账号和身份,开启双重认证,打开系统设置-->Apple ID ,iCloud, 媒体-->填写要续费的iOS开发者账号密码-->密码与安全性-->双重认证-->看下是否已开启,没开启就要开启一下第二步:续费根据iOS开发者账号的创建时间来确定:2019.12之前开通的开发者账号是通过网页端来续费的,所以目前继续沿用网页端续费流程,2019.12之后的开发者账号先在设置-->Apple ID-->订阅--&.
2021-04-07 14:08:58 4923 1
原创 iOS Model转JsonString,Model属性中着有Model Array,Model Array中又嵌套着自定义Model
利用MJExtension框架将Model转化为JsonString时第一步:将Model转化为JsonObject,也就是字典,必须是系统自带的类NSString、NSNumber、NSDictionary、NSArray、NSNull的对象,转化之后不能包含任何的自定义model,否则会报错;crash在NSData *jsonData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrin
2021-02-22 10:59:57 2794
原创 Xcode打开后Target 出现AppIcon不显示
打开Xcode发现AppIcon居然不显示,显示是Xcode默认图标:如下图所示的情况:但是看了下Target所对应的App Icons and lanuch Images里面已经设置好了要加载的Icon经过仔细排查发现原来是Targets->Build Phases->Copy Bundle Resources里面没有添加Assets.xcassets文件夹解决办法:1,在Targets->Build Phases->Copy Bundle Reso
2021-01-07 16:17:33 1943
原创 IOS添加新设备后Xcode如何自动更新iOSTeam Provisioning Profile?
1.首先去苹果开发者官网,添加iOS设备的UDID,UDID可以通过蒲公英浏览器工具箱获取;2.来到Xcode,Xcode11以前依次选择Target --> General --> Signing -->Provisioning Profile Xcode Managed Profile,Xcode11以后依次选择Target --> Signing & Capablities-->All-->Provisioning Profile Xcode Ma...
2020-10-26 15:14:47 2332
原创 iOS极光推送到开发环境,但无法推送到生产环境
在测试iOS Development环境下可以收到极光推送,而在iOS AdHoc环境下收不到极光推送。经查证,需要如下配置:一、App端(iOS)在AppDelegate.m的initJPush方法中[JPUSHService setupWithOption:launchOptions appKey:JPushAppKey channel:@"App Store" apsForProduction:isProduction];/* isProduction在生产环境时要设为:YES, 而在开发环.
2020-09-22 11:36:41 1170 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人