- 博客(129)
- 问答 (2)
- 收藏
- 关注
原创 自定义window用于展示弹框后 设置rootviewcontroller展示其他页面 再返回设置为nil后 界面不响应问题
UITransitionView
2022-07-13 15:56:15
420
原创 cocoapods安装完成后 执行pod search失败
[!] Unable to find a pod with name, author, summary, or description matching `AFNetworking`
2022-06-28 16:44:08
864
原创 iOS CIQRCodeGenerator(二维码生成器)的使用和参数介绍
- (CIImage *)getQRCode:(NSString *)constent{ //创建二维码滤镜 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; [filter setDefaults]; NSData *strData = [constent dataUsingEncoding:NSUTF8StringEncoding]; [filter setValue:strDa.
2022-02-19 14:51:08
2054
原创 iOS大屏手机 APP显示老年人模式如何适配
最近发现自己的APP在iPhone13Pro上显示成了老年人模式。发现手机设置使用的是标准模式。然后入坑了,查阅各种分辨率和像素密度的文章,还自己搞了个函数去计算视图尺寸和手机的缩放关系。直到今天,突然灵光一闪,冲浪了一下(之前已经不知道搜索了多少遍了,可能因为关键字不对,没有搜到重点)。其实显示成老年人模式是因为新出的大屏手机对应的启动图片的尺寸在工程中没有配置。找到LaunchImage,选中把没有勾选的钩上,添加对应图片APP显示就正常了。...
2022-01-19 17:25:58
2709
原创 查找iOS工程中未使用到方法脚本 FindSelectorsUnrefs.py
# coding:utf-8import osimport reimport sysimport getoptreserved_prefixs = ["-[", "+["]# 获取入参参数def input_parameter(): opts, args = getopt.getopt(sys.argv[1:], '-a:-p:-w:-b:', ['app_path=', 'project_path=', 'bla.
2022-01-10 14:17:42
1917
4
原创 iOS获取utsname.machine对应的手机名称
iPhone1,1 : iPhone iPhone1,2 : iPhone 3G iPhone2,1 : iPhone 3GS iPhone3,1 : iPhone 4 iPhone3,2 : iPhone 4 GSM Rev A iPhone3,3 : iPhone 4 CDMA iPhone4,1 : iPhone 4S iPhone5,1 : iPhone 5 (GSM) iPhone5,2 : i...
2021-12-29 13:22:42
1914
原创 iOS \\x开头编码字符转中文
NSString *ssid = @"\\xe6\\x9d\\xa8\\xe7\\xb4\\xab";ssid = [ssid stringByReplacingOccurrencesOfString:@"\\x" withString:@"%"];ssid = [ssid stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
2021-12-02 11:10:30
1062
转载 类方法实例方法误区
类方法又称静态方法。1.静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存(错误)。事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。2.静态方法在堆上分配内存,实例方法在堆栈上(错误)。事实上,所有的方法都不可能在堆或者堆栈上分配内存,方法作为代码是被加载到特殊的代码内存区域,这个区域是不可写的。3.实例方法需要先创建实例才可以调用,比较麻烦,静态方法不用,比较简单。(错误)事实上,如果一个方法不访问某实例成
2021-07-05 13:40:08
145
原创 iOS14 广播组播发送失败问题
我们App之前用到广播组播发送配网信息,然后设备收到信息后自动配网的功能。在iOS14以后的版本突然失效。调试发现是发送广播包一直失败,组播包也没发送成功。cha yu
2021-05-31 16:08:34
3313
2
转载 iOS14.2-iOS14.4 九宫格下密码输入异常问题
iOS14.4 切换九宫格输入名称后,点击密码输入框,弹出键盘模式没有自动切换,且输入无响应。升级iOS14.5.1后正常,目测系统bug;https://discussionschinese.apple.com/thread/252666052
2021-05-19 08:49:01
440
原创 5.1.2 We found in our review that your app collects user and device information
最近公司有个带广告的app审核时遇到 “We found in our review that your app collects user and device information to”报错,意思是APP通过某种方法生成了用户设备表示标志,这个是苹果最新政策不允许的(根据Apple Developer Program许可协议的第3.3.9节,您和您的应用程序均不能使用任何基于设备的永久性标识符或从其衍生的任何数据来唯一标识设备。后续步骤要解决此问题,请从您的应用中删除所有使用算法转换后的设备和使用情
2021-04-12 09:14:08
533
原创 iOS APP发送邮件
#import <Foundation/Foundation.h>#import "SKPSMTPMessage.h"#import "NSData+Base64Additions.h"typedef void (^XMSendEmailResult)(BOOL success);NS_ASSUME_NONNULL_BEGIN@interface XMEmailManager : NSObject@property (nonatomic,copy) XMSendEmailR.
2021-03-19 16:48:00
617
原创 Xcode编译配置
设置Xcode显示编译时间,打开终端输入: defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
2021-03-19 14:16:15
240
转载 不同进制相互转换
转载地址将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是 N 进制,那么:对于整数部分,从右往左看,第 i 位的位权等于Ni-1 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是 1,那么它所表示的数值大小就是该位的位权。1) 整数部分例如,将八进制数字53627 转换成十进制:53627 =...
2021-03-18 09:14:49
474
转载 汇编语言入门教程
转载地址汇编语言入门教程学习编程其实就是学高级语言,即那些为人类设计的计算机语言。但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言。汇编语言不容易学习,就连简明扼要的介绍都很难找到。下面我尝试写一篇最好懂的汇编语言教程,解释 CPU 如
2021-02-24 16:50:59
661
转载 iOS14以后GoogleMobileAD如何配置来支持广告跟踪转化
iOS14以后,为了进一步加强隐私保护苹果不再默认支持获取IDFA,需要用户同意跟踪权限app才能访问IDFA。如何请求权限:1.在Info.plist中增加使用说明字段<key>NSUserTrackingUsageDescription</key><string>This identifier will be used to deliver personalized ads to you.</string>2.发起授权请求(第一次请求就会弹
2021-02-23 14:31:13
715
原创 swift type of expression is ambiguous without more context
这个提示可能是输入参数类型和实际函数参数类型不一致导致的。错误代码:convenience init(hex: Int, alpha: CGFloat = 1.0) { let components = ( R: Double((hex >> 16) & 0xff) / 255.0, G: Double((hex >> 08) & 0xff) / 255.0,
2021-01-22 10:28:18
5690
1
原创 ‘UIScene‘ is only available in iOS 13.0 or newer
今天用Xcode新建了一个Swift工程,直接选择支持最低版本iOS9后运行报错:'UIScene' is only available in iOS 13.0 or newer。 也就是iOS13以后出现了UIScene这个东西,应该是为多窗口应用准备的。我这里只需要单窗口应用程序且不使用storyboard,所以要进行以下操作:1.删除SceneDelegate.swift文件,同时删除AppDelegate.swift里UISceneSessionLifecycle相关函数;2.删除in.
2021-01-21 14:36:32
4788
2
原创 iOS 使用WKWebView展示本地gif图片 并设置图片自适应屏幕大小
WKWebView初始化:- (WKWebView *)imageWebview{ if (!_imageWebview) { //设置图片自适应屏幕长度 NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width');
2021-01-21 10:55:07
1355
2
原创 替换新版本FaceBook.Framework 出现编译错误
到了12月份了,苹果之前说的弃用UIWebView的问题急需处理。App中包含了FaceBook登录的模块使用的老库需要替换新版本,在Github寻找最新的下载即可(我用的是v8.2.0)。替换后,出现如下编译错误:Undefined symbols for architecture armv7:"__swiftEmptyDictionarySingleton", referenced from:function signature specialization <Arg[0] = Owne
2020-12-05 09:09:47
411
原创 iOS8 设置导航栏rightBarButtonItems 只显示一个
通过[[UIBarButtonItem alloc] initWithCustomView:rightBtn]方式生成了多个UIBarButtonItem对象加入到rightBarButtonItems中后,低版本测试发现问题,只显示一个按钮。对比代码发现唯一可能问题就是没有设置大小,rightBtn初始化时没有设置frame,iOS低版本如果使用initWithCustomView方式生成的UIBarButtonItem对象,必须要设置frame,否则就显示不出。...
2020-11-28 15:50:06
248
原创 UICollectionView reloadData 有时不刷新数据 显示空白问题
最近 在iOS8.4手机运行工程时,发现一个诡异的bug,UICollectionView调用刷新界面函数reloadData后,什么方法都没执行。确认数据源和代理设置都是正常的。最后发现reloadData应该是有bug,使用其他刷新方法替换就正常了,我这里使用reloadSections即可成功刷新。...
2020-11-09 17:10:41
1232
原创 iOS或Swift推荐使用的图表库AAChartKit
GitHub:https://github.com/AAChartModel/AAChartKit完美支持各种类型的图表,最重要的是一直有更新,有问题可直接提问(秒回),非常赞。
2020-11-03 16:30:33
544
原创 iOS手机崩溃日志解析
手机设置-》隐私-〉分析与改进 中的 共享iPhone分析 和 与App开发者共享 打开设置 ->隐私->分析与改进中 分析数据一栏 看一下是否有对应崩溃时间的日志(app名字开头的) 有的点击进入右上角分享下 就是崩溃日志了1.找到xcode提供的解析工具:进入终端->输入-> find /Applications/Xcode.app -name symbolicatecrash -type f把对应路径下的/Applications/Xcode.app/Cont...
2020-08-28 17:27:57
2510
原创 dyld: Symbol not found:_OBJC_CLASS_XXXX
在Build Phases中,将对应类的framework的status设置成optional即可;
2020-08-13 13:32:53
783
原创 rvictl -s + 需要抓包手机的UDID 开启虚拟端口失败
尝试使用rvictl -s + 需要抓包手机的UDID开启虚拟端口失败;执行命令后什么提示也没有,正常的会有成功提示:Starting device UDID [SUCCEEDED] with interface rvi0最后发现UDID必须要小写;
2020-07-18 08:52:18
2732
2
原创 dyld: Library not loaded: XXXXX Referenced from: XXXXX Reason: image not found
今天更新了FaceBook最新的库,替换后编译运行就报这个错:dyld: Library not loaded: XXXXX Referenced from: XXXXX Reason: image not found找了一些方法,我这边进行以下操作可以正常运行:现在运行没有问题,但是打包上传iTunesConnect出现报错,具体解决参考:https://blog.csdn.net/u010462316/article/details/107208532...
2020-07-08 16:32:55
423
原创 iTuness Connect 上传ipa报错:ERROR ITMS-90087: “Unsupported Architectures.
这个错误提示是对应的库有apple不支持的架构引起的;需要在工程配置下加一个shell脚本,将不支持的架构剔除掉;具体操作:工程中选择Bulid Phases->点击左上角加号 New Run Script Phase ->进入增加的Run Script项目中Copy下面脚本即可:# Without further ado, here’s the script. Add a Run Script step to your build steps, put it after.
2020-07-08 16:21:46
376
原创 升级了Xcode 运行模拟器报错:building for iOS simulator but the linked framework XXX was build for ios
需要在Xcode->File->ProjectSettings 将Build System:NewBuild System改成Legacy Build System即可;
2020-06-03 11:09:36
4459
原创 Deprecated API Usage UIWebView如何处理
提交iTunesConnect提示Deprecated API Usage UIWebView,根据苹果的提示,我们需要将项目中的UIWebView替换成WKWebView;1.工程中先简单搜索一遍UIWebView相关的代码,涉及到的地方都替换成WKWebView实现;2.还有第三方库,会使用到UIWebView,需要通过其他方式查询UIWebView的使用情况,:cd 项目根目录find . -type f | grep -e ".a" -e ".framework" | xargs g
2020-05-23 17:02:09
536
原创 UIViewController无法释放问题
正常在UIViewController dismiss或者pop掉之后,控制器应该会被回收释放。具体可以实现dealloc方法查看。但是实际操作中可能会发现控制器没有走dealloc方法,那就说明你的控制器很可能被其他对象持有了。什么情况下会造成这个情况呢:1.NSTimer计时器的使用,如果addTarget:self ,计时器一直没有销毁就会造成self无法释放,需要在退出界面前,判断计时器的使用情况,销毁计时器;2.Block对象强持有self,block满天飞,self乱入block,除了系
2020-05-21 20:16:46
1609
原创 iOS APP启动界面异常横屏问题处理
为了保证每次APP启动必然竖屏,在工程配置中Device Orientation必须只选择Protrait。这个时候你会发现每个界面都无法旋转了,需要在AppDelegate中加入如下代码(具体支持的方向可以自行选择):- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfa...
2020-04-17 13:30:18
1957
原创 iOS TouchEvent实战
从手指接触屏幕,到app控件作出响应,就是一个完整的TouchEvent发生了。通过控制TouchEvent流程,可以实现哪些基础需求:增大控件响应范围; 阻断UIScrollView对事件的截取;来看下整个过程:手指触摸->产生TouchEvent->发送给UIApplication寻找响应者响应。这里其实通过hitTest:WithEvent从下往上(从window到顶...
2020-04-11 16:17:19
240
原创 iOS 设置UITableViewCell中的imageView的大小
再cellForRow中添加如下代码(需要在设置完imageView以后配置itemSize就是你需要设置的图片的大小):CGSize itemSize = CGSizeMake(30, 30); UIGraphicsBeginImageContextWithOptions(itemSize, NO, UIScreen.mainScreen.scale); CGRect...
2020-01-08 14:57:00
450
转载 iOS sqlite3 基本使用
SQLite3的基本使用|SQLite3简介SQLite3只是一个轻型的嵌入式数据库引擎,占用资源非常低,处理速度比Mysql还快,专门用于移动设备上进行适量的数据存取,它只是一个文件,不需要服务器进程。常用术语:表(table)、字段(column,列,属性)、记录(row,record)。|SQL(structured query language)语句特点:不区分大小...
2019-11-23 09:29:11
464
原创 微信SDK1.8.6.1 不带支付功能 registerApp: 失败
最近审核被拒,说app中包含有tenpay支付功能,就把微信SDK更新到当前最新没有支付版本1.8.6.1,但是实际使用时发现初始化一直返回失败。解决方案:需要在工程的info.plist配置文件中的LSApplicationQueriesSchemes中增加一个String类型的配置值weixinULAPI,加完就可以正常了,至于universallink,如果不想处理的话,这个目前可以传一...
2019-10-16 19:59:26
732
原创 真机调试获取手机语言异常 一直是某个固定值
最近项目真机调试时,突然发现获取手机语言一直是固定值。打包后,语言获取是正常的。最后发现尽然是某位同事测试某种语言下的问题时修改了工程EditScheme->Run->Options->Application Language,但是却把他附带提交到了代码里,很尴尬。这里只要把配置改回System Language就没问题了。...
2019-10-16 14:03:32
108
空空如也
IntelliJ IDEA 2017 编译报错
2018-01-23
iOS 点击远程推送消息 打开app app闪退
2016-04-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人