iOS开发
sacrifice123
目中有人才有路,心中有爱才有度 !
展开
-
iOS回调函数(block篇)
此文简单的介绍了block的回调传值使用,供大家一起交流学习。原创 2015-11-05 13:45:31 · 2843 阅读 · 0 评论 -
解决iOS11刷新tableview时抖动问题
iOS tableview开启高度估算(Self-Sizing),reloadData的时候不再全部计算高度。解决方案:在初始化tableview的时候加上这几行 _tableView.estimatedRowHeight = 0; _tableView.estimatedSectionHeaderHeight = 0; _tableView.estimatedSectionFo...原创 2019-01-29 13:46:07 · 3913 阅读 · 0 评论 -
点击事件的HOOK
我们在做数据埋点时,如果要做到解藕的实现,需要使用hook的方式做拦截。在做UIButton事件拦截的时候,我知道button点击后会执行sendAction:to:forEvent:方法,所以我可以hook这个方法做些其他事,那UIView的Tap事件,该拦截哪个方法呢?我们可以拦截shouldReceiveTouch- (BOOL)gestureRecognizer:(UIGes...原创 2019-01-08 17:10:18 · 2495 阅读 · 0 评论 -
在现有工程中实施基于CTMediator的组件化方案
国内业界大家对组件化的讨论从今年年初开始到年尾,不外乎两个方案:URL/protocol注册调度,runtime调度。 我之前批评过URL注册调度是错误的组件化实施方案,在所有的基于URL注册调度的方案中,存在两个普遍问题: 命名域渗透 因注册是不必要的,而带来同样不必要的注册列表维护成本 其它各家的基于URL注册的不同方案在这两个普遍问题上还有各种各样的其他问题,例如FR...转载 2018-12-27 21:05:23 · 566 阅读 · 0 评论 -
错误 ld: library not found for -lPods
ld: library not found for -lPods-XXXXclang: error: linker command failed with exit code 1 (use -v to see invocation)在将工程放到git上管理时 然后克隆下来 再打开工程可能会出现上面的问题解决办法: 在 Build Phase 下的 Link Binary With Lib...原创 2018-12-13 18:08:54 · 922 阅读 · 0 评论 -
iOS组建化—私有库
私有库顾名思义是私有的,我在GitHub上使用的都是公开库,出于安全与机密考虑,公司级开发都是使用私有库。下面先说几个概念。一、索引库我们每创建一个组件都会带有一个 xxx.podspec 的索引文件,这个文件包含组建框架的描述信息、框架名称、版本号、真正的代码存放地址及框架源码远程地址。那么专门用来存放这些索引文件的库就叫做索引库。索引库有本地索引库和远程索引库之分。远程索引库就是放在远...原创 2018-11-11 15:27:35 · 1840 阅读 · 0 评论 -
马甲包绕过审核技巧整理
现在马甲包制作越来多,很多时候上线时就会被拒,据说帮助某彩票app马甲上线成功一个可以给到一万元的酬金。废话少说,我整理了下我用到的绕过审核的方案,主要是代码混淆与更改工程名,具体附上链接:1. iOS使用Shell脚本批量修改类名称2. iOS使用shell脚本批量修改属性3.更改项目工程名...原创 2018-07-25 15:38:34 · 6961 阅读 · 2 评论 -
iOS 马甲包制作
一、马甲包简介在ASO中马甲的意思就是内容与主APP一样,但icon图标、应用名不同,一般来说开发者的帐号是不同的,但也有的同鞋做的马甲开发者帐号都是同一样,不过这样的话,隐蔽性要差一些。做马甲有哪些好处1.替主号进行改版测试,将风险最小化。使用主App进行改版测试会存在很多弊端,马甲的好处是可以随意更改,一旦引发不良影响又不会造成很大的损失。如果测试效果良好,则可以对主Ap...原创 2018-07-25 15:24:56 · 7730 阅读 · 5 评论 -
oc调用传参入string格式json串js方法无法执行
今天遇到一个奇葩的问题,weiView执行JS代码时,总是没有效果,可是方法名与参数都没有错,代码如下: [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"%@('%@');", methodName, paraStr]];,其中字符串paraStr格式如下{ "serverId" : "10...转载 2018-07-09 17:30:14 · 422 阅读 · 0 评论 -
iOS把url中含有的中文字符转化为UTF8编码
今天在写项目时,添加H5跳转链接时,发现一进入页面就白屏,但是在浏览器中可以打开页面,仔细检查后发现URL里有中文字符,就产生怀疑,感觉出问题所在,然后把url转化为utf8编码的格式恢复正常,很简单的一句话解决问题: self.url = [self.url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];...原创 2018-06-04 17:43:30 · 7280 阅读 · 1 评论 -
iOS面试题总结
1、设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情。1). MVC模式:Model View Control,把模型 视图 控制器 层进行解耦合编写。2). MVVM模式:Model View ViewModel 把模型 视图 业务逻辑 层进行解耦和编写。3). 单例模式:通过static关键词,声明全局变量。在整个进程运...原创 2018-03-13 22:17:10 · 681 阅读 · 0 评论 -
iOS端启动速度优化
应用启动流程iOS应用的启动可分为pre-main阶段和main()阶段,其中系统做的事情依次是:1. pre-main阶段1.1. 加载应用的可执行文件1.2. 加载动态链接库加载器dyld(dynamic loader)1.3. dyld递归加载应用所有依赖的dylib(dynamic library 动态链接库)对于pre-main阶段,Apple提供了一种测量各阶段的耗时的方法,在 Xco...原创 2018-02-26 10:11:50 · 1419 阅读 · 0 评论 -
ReactiveCocoa学习之创建信号
ReactiveCocoa 是一个 iOS 中的函数式响应式编程框架,简称RAC,RAC关键解决的问题是开发中经常回见的“低聚合,高耦合”问题。在RAC出现之前,我们编写iOS代码,大部分都是在响应一些事件:按钮点击、接收网络消息、属性变化等等。但处理事件的形式在苹果官方API中却有好几种:如target-action、代理方法、KVO、回调或其它。以上这几种,往往在一个项目中基本都会使用到,在不原创 2017-04-17 15:07:29 · 641 阅读 · 0 评论 -
正确使用const,static,extern
一、const与宏的区别(面试题):const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。编译时刻:宏是预编译(编译之前处理),const是编译阶段。编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。宏的好处:宏能定义一些函数,方法。 const不能。宏的坏处:使用大量宏,原创 2016-04-12 10:49:46 · 376 阅读 · 0 评论 -
iOS数据打印时怎么把编码后的文字显示成中文
我们开发中经常会打印字典数组中的数据,很多时候我们打印出来的文字数据都是UTF-8编码后的编码文字,看着很蛋疼。。。没关系,先别蛋疼,有个很有爱的方法帮你解决这个问题。方法很简单就是写个Foundation的分类,内容就是针对数组与字典!啥都不说了,直接上代码:#import @implementation NSDictionary (Log)- (NSString *)descript原创 2016-03-15 15:05:24 · 5258 阅读 · 2 评论 -
CocoaPods安装与使用
在公司中我们做iOS开发过程会经常使用一些第三方库,当然你足够牛逼你也可以自己写库,我想既然你在看我这篇博文,估计你离写框架还有段距离! 废话少说,下面直入正题:首先,CocoaPods是什么?CocoaPods是用来管理第三方库的,比如我们常用的SDWebImage,AFNetWorking。如果我们不使用pods只能手动拖到项目中,那么问题来了,如果某一天作者更新了库,添加了许多新功能或者解决...原创 2016-03-14 17:25:30 · 403 阅读 · 0 评论 -
处理键盘升起后对界面覆盖问题的处理
本人业余时间封装的工具类,供大家一起学习交流!!!原创 2016-01-31 12:18:22 · 813 阅读 · 0 评论 -
OC对象内存大小探究
Objective-C编程语言是C语言的超集,在C语言的基础上加入了面向对象的内容。OC可以和C/C++混合使用,OC对象都可以转化为C/C++结构体表示。要想知道一个NSObject对象占用多少内存,可以通过查看NSObject对象对应的C++结构体的大小来判断。我们可以使用xcode的命令行来把指定的OC文件转成C++文件。//main.m#import <Foundat...原创 2019-01-31 10:44:09 · 856 阅读 · 1 评论