
疑难问题
郏国上
Object C, JavaScript, python高级研发工程师
展开
-
当两个文件互相包含并各自调用了对方的函数将出现什么情况
一个函数不存在问题。文件互相包含互相调用引起的血泪史。解决方案:把其中一个文件的被调用的函数拷贝到另一个文件,去除互相头文件包含,统一调用一个文件的函数。原创 2024-10-28 20:07:22 · 237 阅读 · 0 评论 -
使用序列化和反序列化函数archivedDataWithRootObject和unarchivedObjectOfClasses的使用和遇到问题及解决方案
为何archiveRootObject和unarchiveObjectWithFile正常,而archivedDataWithRootObject和unarchivedObjectOfClasses一直报错。解决方案:遵循NSSecureCoding协议,把所有序列化的对象加入对象集合,对象的所有成员变量序列化和反序列化原创 2023-07-22 20:23:33 · 3185 阅读 · 0 评论 -
SwiftUI的优缺点
SwiftUI不仅为Apple的平台带来了一种新的构建UI的方式,还有全新的Swift编码风格;可以推断出:SwiftUI会出现很多组件库,方便前端开发;支持热更新,这一点可能让更多的开发者拥抱SwiftUI;虽然SwiftUI优点很多,但是其使用的门槛很高,只能在iOS 13以上的系统使用;仅这点,很多公司和开发者望而却步,目前主流应用最低支持iOS 9,至少3年之内,SwiftUI只能作为一个理论的知识储备,所以其还有很长的路要走;原创 2023-07-05 11:15:22 · 3911 阅读 · 1 评论 -
如何修改第三方库
修改第三方库最简单的是拖入工程直接修改。当然由于库间引用,导致拖入工程修改需要处理很多编译问题。指定版本后修改本地库,若别人使用时下载的库和自己的不一样。那如何不拖入工程,并且别人也能使用我们修改后的库呢?需要指定版本然后用分类。以带SceneDelegate的工程SVProgressHUD弹出框显示在左上角为例子进行解说。一般的分类是指重载方法,不定义属性。其实分类也可以定义并使用属性。只是要想分类定义属性要自己实现setter方法和getter方法。原创 2022-12-30 10:14:45 · 521 阅读 · 1 评论 -
显示广告的几种方案及缺点
1.当app首次启动,当定位完毕,请求回来。若有广告地址和广告时间就显示广告。存在的问题用户首先看到了首页,然后才显示广告。2.当app非首次启动,判断是否有上次的广告,若有就显示上次的广告。等定位和广告请求回来。若没有广告就结束广告;若有广告并且和原来的广告相同就继续显示广告;若有广告,但是和原来广告不同就切换新广告;若以前不显示广告,广告接口返回广告,就显示广告。原创 2022-12-29 16:23:27 · 753 阅读 · 0 评论 -
启动页面时间和显示用户协议问题
不建议阻断app,设置启动页面时间;iOS不建议显示用户协议弹窗。不要把安卓那一套机械的照搬到iOS的app上来原创 2022-12-29 15:30:58 · 334 阅读 · 0 评论 -
禁止手机侧滑返回上一个页面的三种方法
禁止手机侧滑返回上一个页面的三种方法终极方法:禁止平移手势,同时通过重置平移手势方法达到拦截侧滑功能原创 2021-07-26 15:16:30 · 6658 阅读 · 1 评论 -
SVProgressHUD弹出框总是显示在屏幕左上角问题
SVProgressHUD 弹出框总是显示在屏幕左上角问题修改办法是修改positionHUD函数的delegate window为keyWindow。当然需要指定它的版本(不指定版本,当它有最新版本,更新版本就被冲掉了),修改本地库很简单,一行代码就搞定了。只是你本地修改了,其它人不知道。若删除代码了重新下载库又回到解放前。另一种方法是指定它的版本,建立分类重载方法和属性。原创 2022-12-15 09:23:20 · 580 阅读 · 0 评论 -
高德的一次性定位不返回结果问题
高德的一次性定位不返回结果。使用AMapLocationKit SDK 功能前请设置隐私权政策是否弹窗告知用户。 [MAMapView updatePrivacyShow:AMapPrivacyShowStatusDidShow privacyInfo:AMapPrivacyInfoStatusDidContain]; [MAMapView updatePrivacyAgree:AMapPrivacyAgreeStatusDidAgree];原创 2022-12-09 11:53:49 · 1685 阅读 · 0 评论 -
如何解决iOS16系统app首次启动总是弹出允许粘贴提示框问题
如何解决iOS16系统app首次启动总是弹出允许粘贴提示框问题?若你的页面不支持其它app唤醒你的app并传递参数的功能,直接在app启动函数清除粘贴板内容就可以:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [UIPasteboard generalPasteboard].string = @"";原创 2022-12-06 09:55:24 · 4076 阅读 · 0 评论 -
如何访问当前固定格式页面的所有控件并进行修改
如何访问当前固定格式页面的所有控件并进行修改。当然若是随着内容不断变化的页面,你可能找不到对应的控件,所以无法修改。另外有的第三方库会来回改控件的属性,你就是把它的属性修改了,第三方库也可能重新修改回去。我们经常用到第三方的SDK,只有头文件,拿不到源代码,那么就可以采用启动一个定时器扫描几次修改它的属性了(如控件的显示和隐藏,文本颜色)。下面给出了打印当前页面的所有控件及编号。首先可以通过基本类型和位置来确定你修改的控件,若实在找不到通过编号也能找到。只要找到控件和编号你想怎么修改还不是轻而易举的事情原创 2022-12-02 11:45:40 · 294 阅读 · 0 评论 -
在高德地图添加标注物,及点击标注物感应区域重叠问题
高德地图上可以添加覆盖物和标注物(如定位大头针)。覆盖物MAGroundOverlay会随着地图的放大缩小而等比例的放大缩小,优点页很显然,移动带有大量覆盖物的地图,覆盖物不闪动,很平滑。标注物MAAnnotationView不会随着地图的放大缩小而改变。缺点是当地图上有大量标注物时,上下左右的移动地图,标注物会有闪动的效果,不平滑。若标注物有点击事件,在创建标注物时一定要给它具体的frame,不然会可能看到了标注物大小正常,但是当两个标注物冲动或比较近时,可能误判点击的是那个标注物。原创 2022-12-01 14:47:17 · 2274 阅读 · 0 评论 -
解决设置了标签的最大行数,更新标签的内容为富文本内容,导致超过最大行数不显示...问题
客户要求标签内容要有行距,那么只能通过富文本来设置行距了。这样就遇到了设置了标签的最大行数,更新标签的内容为富文本内容,导致超过最大行数不显示...问题。解决这个问题很简单,只需要加上一句`self.contentLb.lineBreakMode = NSLineBreakByTruncatingTail;`原创 2022-11-30 11:59:24 · 249 阅读 · 0 评论 -
A包含B,用block实现A和B互相调用更新数据
A包含B,用block实现A和B互相调用更新数据:在创建B时给它传递一个bock,对A特别关注的数据B更新该数据时同步给A。A创建B注册一个B的block,B需要时,调用block通知A更新最新的B关注数据给B或单例。然后再使用数据。原创 2022-11-30 11:42:33 · 418 阅读 · 0 评论 -
唤醒键盘后无法立即隐藏键盘问题与隐藏键盘的四种方式
唤醒键盘后无法立即隐藏键盘问题与键盘隐藏的四种方式:当判断是否显示键盘时,当发现没有登录时直接返回不显示键盘,并进行后续处理。1.注销第一响应者;2.结束编辑;3.keyWindow结束编辑;4.直接发送 resignFirstResponder 消息。原创 2022-11-30 09:34:27 · 587 阅读 · 0 评论 -
如何解决由引起的IQKeyboardManager部分页面返回的键盘高度比实际小或最后收到键盘隐藏通知却显示了键盘问题
如何解决由于IQKeyboardManager引起部分页面键盘高度不正确或最后收到键盘隐藏通知却显示了键盘问题:经过观察View UI Herarchy发现有键盘的页面都有UIInputSetContainerView,键盘的总高度就是UIInputSetHostView的总高度。只是iOS13及跟高的系统,键盘是在第二个窗口的UIInputWindowController中,而比iOS13低的版本在第是哪个窗口的UITextEffectsWindow中。原创 2022-11-29 14:38:06 · 1113 阅读 · 0 评论 -
iOS13.6.1系统XR手机图文按钮显示不全问题
iOS13.6.1系统XR手机出来了奇怪的问题,图文按钮显示不全问题。比它老的系统或新的系统就是相同的手机都没有出现类似的问题。就是系统相同手机不同也没有出现该问题。既然测试提出该问题,只能修改了。这是特定手机特定系统适配问题。修改的思路是:把这个显示图片和文字的按钮拆分成按钮包含一个图片和一个标签,计算出他们的文字宽和图片宽。原创 2022-11-03 17:31:49 · 1056 阅读 · 0 评论 -
通过计算的文本宽度,由于小数四舍五入引起的文字显示不全问题
通过计算的文本宽度,由于小数四舍五入引起的文字显示不全问题:通过计算的文本宽度,若出现小数,而手机的屏幕有最低分辨率(BG_1PX (1.0f / [UIScreen mainScreen].scale)),标签的宽度只能大于文本实际的宽度才能正常显示,否则会出现显示不出来的问题。解决办法是:发现计算的文本宽度带小数(小数点后全是零不算)就直接把计算出的宽度加1像素。原创 2022-10-26 17:20:43 · 221 阅读 · 0 评论 -
浏海屏手机在部分页面通过[[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom得到底部安全区高度为0问题
刘海屏手机在部分页面通过[[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom得到底部安全区高度为0问题,如何解决?可以通过重新获取keyWindow来正确找到底部安全高度和顶部安全区高度。......原创 2022-06-27 15:31:55 · 1150 阅读 · 0 评论