OC篇
文章平均质量分 60
H.A.N
Objective-C、Swift、热更新、APICloud跨平台开发、Flutter学习实践指南、性能优化实践指南。GitHub:https://github.com/HanQiGod
展开
-
iOS Error Domain=NSCocoaErrorDomain Code=4099
Xcode 控制台报错:[Client] Sending selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo={NSDeb...原创 2020-01-20 09:57:01 · 10563 阅读 · 1 评论 -
iOS Xcode 提示 “This app could not be installed at this time.”
好好运行的项目,第一次模拟器安装没问题,第二次在安装提示错误:This app could not be installed at this time.首先清理模拟器第一步:点击模拟器,选择Hardware -> Erase All Content and settings第二步:command + shift + k 清理编译第三步::command + option + ...原创 2020-01-19 11:12:01 · 2464 阅读 · 0 评论 -
Flutter 和 iOS 中 .gitignore 文件内容
Flutter 和 iOS 混编,其中 .gitignore 文件内容:# Built application files*.apk*.ap_*.aab# Files for the ART/Dalvik VM*.dex# Java class files*.class# Generated filesbin/gen/out/# Gradle files.gra...原创 2019-10-23 14:12:51 · 494 阅读 · 0 评论 -
Flutter 开发Packages、插件包、调用原生编写的 iOS 三方库以及传值总结
创建 package命令:flutter create --template=plugin -i 【iOS语言objc/swift】-a 【Android语言kotlin/java】【项目名】例如:flutter create --template=plugin -i swift -a kotlin map文件目录这将在 map/ 文件夹下创建一个具有以下专用内容的插件工程:l...原创 2019-10-22 11:52:50 · 1285 阅读 · 0 评论 -
iOS 如何解决苹果审核4.3问题(guideline4.3, 马甲包4.3, 马甲包混淆)(一)
最近用户遇到苹果审核guideline4.3问题, 也就是大家说的马甲包4.3, 这里来说说原因。首先,要看你是什么产品和使用的什么技术框架, 不同的框架对应的解决方案是不一样的。 先说说为什么会遭受到4.3, 苹果的审核目前分为机器审核和人工审核。1 机器审核当前苹果机器审核的具体原理,估计只有苹果内部自己的人才知道, 而且这个审核原理应该也是会不断的升级和变化, 只原创 2018-05-17 10:39:59 · 16439 阅读 · 6 评论 -
iOS 马甲包4.3被拒后,所做的修改。结果上传成功了,分享给大家。(二)
①升级version,升级一个版本号提交审核;②换bundle id,换一个包再提交审核;③换开发者账号,换不同账号提交审核;④修改素材及UI色调等,修改logo,修改主色调;⑤修改功能界面等,此处可改功能可做小开关;⑥添加垃圾代码或者注释块,此处主要防苹果机审扫描。加多点注释,无关的也无所谓的。1、定期换电脑提包.原创 2018-05-17 10:38:15 · 15856 阅读 · 1 评论 -
iOS App Development (Maximum number of certificates generated)开发证书数量到上限了怎么办
开发证书数量到上限了怎么办 1.已上架的或者不用的都可以删除啦 要用的时候在申请就可以啦原创 2017-11-08 13:17:46 · 27209 阅读 · 0 评论 -
iOS 中APP被拒以及解决办法总结(待更新)
1.APP违反PLA 1.2审核被拒问题以及解决方案问题PLA 1.2The seller and company names associated with your app do not reflect the retailer names in the app or its metadata, as required by section 1.2 of the Apple De...原创 2017-09-23 16:17:52 · 18347 阅读 · 1 评论 -
iOS 阴影设置详解
UIView的阴影设置主要通过UIView的layer的相关属性来设置阴影的颜色imgView.layer.shadowColor = [UIColor blackColor].CGColor;阴影的透明度imgView.layer.shadowOpacity = 0.8f;阴影的圆角imgView.layer.shadowRadius = 4.f;阴影偏移...原创 2018-05-17 17:02:59 · 6289 阅读 · 0 评论 -
iOS 电商网站HTTPS实践之路——性能优化篇
通过分析TLS握手过程的细节我们会发现HTTPS比HTTP会增加多个RTT网络传输时间,既增加了服务端开销,又拖慢了客户端响应时间。因此,性能优化是必不可少的工作。很多文章都集中在服务端的性能优化上,但对于电商行业而言,大部分的用户流量源于App,因此客户端的性能优化配合服务端才能使收益最大化。HTTPS带来的负担 1.1 增加的传输延时 1.2 服务端额外开销服务端性能优化 2.1...原创 2018-05-17 10:30:16 · 1462 阅读 · 0 评论 -
iOS UIView 添加背景图片
UIView 添加背景图片:第一种方法(不推荐): 用的UIView的设置背景颜色方法,用图片做图案颜色,然后传给背景颜色。[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@”“]]];这种方法是最简单的,但是,存在的问题也比较:首先,[UIImage ima...原创 2018-05-12 12:41:49 · 5187 阅读 · 0 评论 -
iOS Collectionview通过设置contentInset方式添加表头Header,影响MJRefresh使用的解决方案
Collectionview设置contentInset方式添加表头Header,影响MJRefresh下拉刷新解决方案://下拉(解决设置contentInset 遮挡mj_header显示关键代码)MJRefreshNormalHeader *ref_header =[MJRefreshNormalHeaderheaderWithRefreshingTarget:selfrefre...原创 2018-05-11 16:33:06 · 6051 阅读 · 0 评论 -
iOS 字符串大小写转换
-(NSString *)toLower:(NSString *)str{ for (NSInteger i=0; i if ([str characterAtIndex:i]>='A'&[str characterAtIndex:i]'Z') { //A 65 a 97 ch原创 2018-05-04 11:17:32 · 334 阅读 · 0 评论 -
iOS cocoaPods安装第三方时报错“curl 18 transfer closed with outstanding read data remaining”
报错:curl 18 transfer closed with outstanding read data remaining解决办法:终端执行 git config http.postBuffer 24288000原创 2018-04-28 11:31:35 · 1074 阅读 · 0 评论 -
iOS CocoaPods pod install/pod update更新慢的问题
最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:pod install --verbose --no-repo-updatepod原创 2018-04-28 11:19:35 · 651 阅读 · 0 评论 -
iOS lottie-ios坑导入解决办法
问题:[!] Error installing lottie-ios[!] /usr/bin/git clone https://github.com/airbnb/lottie-ios.git /var/folders/yb/20c1c4sx0q91yqvzlr92n_p80000gp/T/d20170310-59137-kam3xz --template= --single-branch -...原创 2018-04-27 16:39:30 · 4377 阅读 · 1 评论 -
iOS WKWebView 禁止长按(超链接、图片、文本...)弹出效果
方法一://设置代理self.wkWebView.navigationDelegate = self;#pragma mark - wkWebViewDelegate//禁止链接跳转- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAc...原创 2018-04-23 16:16:58 · 5337 阅读 · 0 评论 -
iOS MAC系统升级导致COCOAPODS失效问题
使用pod install出现如下错误-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory这是Mac升级系统导致,当你的Mac系统升级为 high siera的时候,别忘记更新...原创 2018-04-23 14:27:28 · 163 阅读 · 0 评论 -
iOS 利用visibleViewController和topViewController获取当前显示的页面区别
UINavigationController 中有visibleViewController和topViewControllervisibleViewController 当前显示的控制器topViewController 是某个导航栈的栈顶视图visibleViewController跟导航栈没有关系,只是当前显示的控制器,也就是说任意一个导航的visibleViewContro原创 2018-03-28 17:48:38 · 4440 阅读 · 0 评论 -
iOS 改变UIAlertController的标题、内容的字体和颜色
在开发中,弹出框是必不可少的,通常情况下,我们只要弹出系统自带的弹出框就可以。but,在某些情况下,万恶的UI会要求你修改显示文字的大小、颜色,虽然系统自带有一种红色字体的UIAlertAction,但是这种Action并不能放在Cancel位置,所以,更多时候,需要我们自己修改文字字体和颜色。我采用的方法是KVC:1.标题和提示内容的文字设置代码如下://修改title NSMutabl...原创 2018-03-27 13:04:00 · 2222 阅读 · 0 评论 -
iOS LazyTableImages解析(图片懒加载)
简单了解懒加载:顾名思义,用到的时候才去加载,又称延时加载。OC中常用两种懒加载如下:1.非image实例懒加载:- (UILabel *) nameLabel {//手动实现实例的get方法,调用这个实例的时候判断该实例是否已初始化,若未初始化则先初始化后返回 if (!_nameLab原创 2018-03-22 13:38:23 · 508 阅读 · 0 评论 -
iOS 开发更便捷-JSONConverter
JSONConverter是MAC上iOS开发的辅助小工具,可以快速的把json数据转换生成对应的模型类属性,目前支持Objective-C、Swift以及目前流行的第三方库: SwiftyJSON、HandyJSON,ObjectMapper,可以灵活选择构建class/struct,并支持配置类名前缀等,省去手敲模型的麻烦,借此提高我们的开发效率。部分功能展示原创 2018-03-20 14:49:40 · 550 阅读 · 0 评论 -
iOS iPhoneX 适配
问题一:适配1.首先简单定义一下IPoneX#define ISIPHONEX (ScreenHeight == 812.0f) ? YES : NO2.简单了解下IPhoneX 导航栏 状态栏 tabar高度1.导航栏高度 88 非非IPoneX手机为642.状态栏高度44 非IPoneX手机为203.tabar高度83 非IPhoneX手机为49 如下图所示;3.定义其高度#define H...原创 2018-03-19 09:57:36 · 2122 阅读 · 0 评论 -
iOS 关于APP注册总结
一、分步注册1、分步注册适合移动端设计移动端屏幕小,加上弹出键盘,假设将多个输入项放在一个页面,会给用户造成拥挤感,然而分步注册则可较好的解决该问题。2、分步注册可减少用户点击输入框的次数几乎所有的注册关键步骤中都有:输入手机号、获取验证码、设定密码这3个步骤。在一个页面中时,需要手动逐项呼出键盘来填写。若遵循分步注册,分成3个页面的话,进入每个页面都会自动原创 2018-03-19 09:04:08 · 854 阅读 · 0 评论 -
iOS 减少AppDelegate代码方法汇总
AppDelegate瘦身是一个大家都很熟悉的话题,各家也有各自的解决方案。但方案无外乎两种,一种是从AppDelegate本身入手,通过各种方式减少AppDelegate的代码行数,另一种是通过架构层面就解决了。本文将分别介绍这两种方式的代表性库,并对比其优缺点。FRDModuleManagerFRDModuleManager是豆瓣开源的轻量级模块管理原创 2018-03-17 10:51:10 · 1255 阅读 · 0 评论 -
iOS 高质量博客推荐
推荐一些我个人认为非常经典,值得关注的博客。OneV's Den大家尊称为喵神 @onevcat 的博客。对 Swift 技术在国内的推广做了很大的贡献。Limboy’s HQ李忠关于 RAC 、组件化的文章流传很广。博客中对架构、编程的思考都很精髓。听说现在转管理后不太更新技术文了。Casa TaloyumCasa 对架构有很深的理原创 2018-03-05 09:09:23 · 1378 阅读 · 0 评论 -
iOS UISearchBar 属性、方法详解及应用(自定义搜索框样式)
本文主要介绍内容分为以下三个部分:UISearchBar 的属性UISearchBar 的方法自定义 UISearchBar 的样式1. UISearchBar 的属性介绍之前先说一下 UISearchBar 的初始化方法:UISearchBar 是 UIView 的子类,它的初始化方法有三种:- (instancetype)init - (instancetype)initWithFrame:(...原创 2018-02-23 09:52:34 · 402 阅读 · 0 评论 -
iOS An error occurred uploading to the iTunes Store
今天更新版本,上传包的时候,报的错:解决办法:cd ~mv .itmstransporter/ .old_itmstransporter/原创 2018-02-12 10:52:19 · 399 阅读 · 0 评论 -
iOS Application Loader无法登录提交
报错,Please sign in with an app-specific password. You can create one at appleid.apple.com使用账号登录https://appleid.apple.com/zh_CN 管理我的账号,说明账号没有被锁。账号开启了两步验证。由于Application Loader 只是登录,目前还没有两步验证功能,原创 2018-02-12 10:16:09 · 2022 阅读 · 0 评论 -
iOS 博客百篇,其义自见(干货)
去年,我在微博上发起了100天阅读博文的行动。具体就是,每天读一篇 iOS 开发相关的技术博文,并在微博上分享自己的读后感。对于在开发、工作、和面试中常见的问题,通过这段时间100篇博客的阅读,我产生了自己的一些心得体会,分享如下。至于想看博客原文的朋友,文末也有相关链接。第一个感触就是iOS开发真是博大精深。我一开始的文章来源定为Medium、Swift Summit、R转载 2018-02-05 09:45:36 · 387 阅读 · 0 评论 -
iOS 关闭键盘的几种方式
前言1、点击编辑区以外的地方(UIView)2、点击编辑区域以外的地方(UIControl)3、使用制作收起键盘的按钮4、使用判断输入字元点击编辑区以外的地方(UIView)这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触原创 2018-02-05 09:40:43 · 4497 阅读 · 0 评论 -
iOS Xcode上Version和Build
1. Version(应用程序发布版本号) 2. Build(应用程序内部标示) 2.1 作用 3. 高效率开发技巧 Version(应用程序发布版本号)对应的就是CFBundleShortVersionString。该版本的版本号是三个时期分隔的整数组成的字符串:第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订。第二个整数表示的修订,实现较突出的特...原创 2018-01-31 09:48:57 · 1154 阅读 · 0 评论 -
iOS 数据持久化
前言我们老是有一种一年到头来发现自己什么都没有干,一年就这样过去了,今天灌点心灵鸡汤。目录一、什么是持久化二、沙盒是什么2.1 沙盒简介及获取沙盒路径2.2 Documents2.2 Library2.2.1 Caches2.2.2 Preferences原创 2018-01-31 09:29:57 · 263 阅读 · 0 评论 -
iOS 超简单实现列表的索引功能
背景iOS系统iOS系统的UITableView自带了索引功能,但是实现的功能比较简单,仅仅支持,滑动索引视图来达到快速滑动UITableView的功能。微信微信的联系人的索引功能比系统索引效果好,前者在滑动索引视图时,会弹出一个指示器。指示器UI区域较大,展示了当前滑动到的索引位置文案,离用户滑动的区域有一定的距离,转载 2018-01-29 11:24:30 · 1034 阅读 · 0 评论 -
iOS 对Strong-Weak Dance的思考
在使用 Block 时,除了使用 __weak 修饰符避免循环引用外,还有一点经常容易忘记。苹果把它称为:“Strong-Weak Dance”。问题来源这是一种 强引用 --> 弱引用 --> 强引用 的变换过程。在弄明白为什么要如此大费周章之前,我们首先来看看一般的写法会有什么问题。__weak MyViewController原创 2018-01-25 11:28:36 · 515 阅读 · 0 评论 -
iOS 教你如何获取设备的网络状态
1.一般设备下的网络状态获取获取当前的网络类型先导入头文件,如下:#import "AppDelegate.h"实现方法如下:+ (NSString *)haveNetworkType { UIApplication *application = [UIApplication sharedApplication]; NSArray *subviewArr =...原创 2018-01-24 10:04:42 · 1193 阅读 · 0 评论 -
iOS UITextField 禁止粘贴
方法1:重写 canPerformAction:withSender: 方法并返回 NO 即可。- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if (action == @selector(paste:))//禁止粘贴 return NO;原创 2018-01-22 14:03:48 · 3594 阅读 · 0 评论 -
iOS 新浪新闻首页卡片滚动特效实现
Leader非常中意这个特效,说要在我们app中使用,问我能不能实现,我一看这个特效,卧槽,涉及了好多技术点,实现难度很大。如果是自己做特效还好,模仿别人的特效,做的粗糙没什么,如果要做得好,就得考虑好多细节。身为男人,怎么能说不行,自己给自己安排时间,偷偷搞,经过了几天的艰苦奋战,终于完成了,开森。能够完成这个特效,感谢她,感谢他,感谢一如既往支持我的人。原创 2018-01-21 10:46:38 · 1442 阅读 · 0 评论 -
iOS 仿斗鱼聊天:基于CoreText的面向对象图文排版工具AWRichText
AWRichText基于CoreText,面向对象,极简,易用,高效,支持精确点击,UIView混排,GIF动图,并不仅仅局限于图文混排的富文本排版神器。代码地址:https://github.com/hardman/AWRichText接下来会在blog中更新一些具体实现细节。简述很多ap转载 2018-01-21 10:39:19 · 598 阅读 · 0 评论 -
iOS 开发·适配iPhone X相关的宏和方法
过了好久,今天终于有时间总结一下适配iPhone X相关的坑,总的来说有两类坑,一个是导航栏+状态栏的高度发生了变化,一个是一些没有实现实现-tableView: viewForHeaderInSection:和-tableView: viewForFooterInSection:等代理方法的UITableView会出错位的问题。1. 判断是否iPhone X:返回YES或原创 2018-01-16 13:14:34 · 434 阅读 · 0 评论