iOS - APP性能优化
iPhone上面的应用一直都是以流畅的操作体验而著称,但是由于之前开发人员把注意力更多的放在开发功能上面,比较少去考虑性能的问题,可能这其中涉及到objective-c,c++跟lua,优化起来相对复杂一些,导致应用在比如touch等较低端的产品上,光从启动到进入页面就花了将近一分钟的时间,页面之间的切换没有那种很流畅的感觉,内存也居...【详细】
ios 性能优化
2018年06月12日 赞:1 评论:0 阅读:410
浅谈MVC及其衍生架构模式(MVVM,MVP,附简易图解)
VIPER的全称是View-Interactor-Presenter-Entity-Router,相比之前的MVX架构,VIPER多出了两个东西:Interactor(交互器)和Router(路由)。 【详细】
ios MVC MVVM 架构
2018年06月11日 赞:2 评论:0 阅读:485
UITableView下拉刷新导致的动画异常
功能背景: UITableView用于展示内容,scrollView上会添加一个RefreshHeadrView,用于实现下拉刷新。 问题描述: 现在在下拉刷新之后,Cell内部的视图会有移动,类似的效果如下(为了方便展示,用按钮点击取代下拉刷新的操作): 相关实现: RefreshHeadrView(下拉刷新view)通过监听scrollView的didScroll回调,触发下拉刷新;在结束的时候通过修改sc...【详细】
UITableView 下拉刷新 cell偏移
2018年06月11日 赞:1 评论:0 阅读:364
静态库文件的crash信息提取
功能背景: 项目中存在某些功能,需要用静态库集成的方式接入。 问题描述: 在线上运行过程中发现某些Crash出自静态库,但是Crash日志里面无法定位到静态库出现Crash的具体代码行数。 如下,testNull的Thread 0发生Crash,但是没有函数相关信息。 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 testNull 0...【详细】
Bug crash 静态库
2018年06月11日 赞:1 评论:0 阅读:401
RSA加密解密,RSA私钥签名,验证,另附 哈希函数算法。
Demo地址: https://github.com/Virtue86/RSAEncryptAndPrivateSign【详细】
协议 pb protrol
2018年04月03日 赞:1 评论:0 阅读:250
MVVM 框架基本使用
Demo地址: https://github.com/Virtue86/MVVMKitDemo 欢迎下载查看,给个Star,有任何问题请issue。【详细】
协议 pb protrol
2018年03月22日 赞:1 评论:0 阅读:488
Protobuf 3.0 以下版本安装和使用 - 完整版
因为还有人在使用2.6.0或者2.5.0版本的Protobuf。所以今天说下Protobuf的安装,之前那个是3.0以上版本的。现在主要说2.6.0的为主。 当然首先你的mac还是应该安装brew。 在安装brew之后,安装这几个软件。 automake, ruby, autoconf, libtool, protobuf。 如果安装的可以去自己Shell中 通过输入 $ brew list 查看 一定都要安装呢。 $ brew install automake $ brew install libt...【详细】
协议 pb protrol
2018年03月20日 赞:1 评论:0 阅读:394
Protobuf 3.0 以上版本安装和使用 - 完整版
版权归Aaidong所有〜转载需声名〜 原贴地地址:http://blog.csdn.net/aaidong/article/details/44678045 http://blog.csdn.net/hyq4412/article/details/54891038 Protobuf简介 Protocol Buffer是google 的一种数据交换的格式,已经在Github开源,目前最新版本是3.1.0。它独立于语言,独立于平台。google 提供了多种语言的实现:Java、C#、C++、Go 和 Python,Objective-C,每一种实现都包含了...【详细】
协议 pb protrol
2018年03月20日 赞:2 评论:0 阅读:518
JSPatch使用
JSPatch使用 主要注意语法上的不同。。。 require require主要就是导入要使用的类,或者在代码中直接使用。(其中实力变量,私有变量使用的类也要导入) 2.OC方法跟JS方法 需要在方法后边加入()表示调用。如遇多个参数的方法,则使用_区分各个参数。 defineClass a 寻找此类方法,或者变量。可以覆盖,修改已经存在的方法,或者添加,修...【详细】
热更新 JSPatch
2018年03月15日 赞:1 评论:0 阅读:1291
JSPatch 源码解析
不知道这个Bang大神怎么能想到这么巧妙的方法,真的很帅! 一、入口 startEngine 首先建立 JSContext *context = [[JSContext alloc] init];上下文对像。 该方法中 向JSContext环境注册了一系列供js调用oc方法的block,这些 block 内部大多是 调用 runtime 相关接口的 static 函数。最终读取JSPatch.js中的代码到JSContext环境,使得main.js可以调用JSPatch.js中定义的方法。...【详细】
热更新 JSPatch
2018年03月15日 赞:1 评论:0 阅读:1324
JSPatch原理分析
关于热更新,大家都是谈热色变,但是由于JSPatch使用的JavaScriptCore.framework 框架,既然RN都可以使用,那么JSPatch在平台的严管下,其实也是可以使用的。对于JSPatch还是很有发展前途的。 对于想调用私有API进行开发的请绕行,现在JSPatch基本已经禁止了。还有如果你的代码太多,甚至是一个app,你觉得能行嘛? 废话不多说。来说JSPatch。 献上...【详细】
热更新 JSPatch
2018年03月15日 赞:2 评论:0 阅读:1183
面向切面编程,Aspects简介与简单使用
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低...【详细】
面向切面编程 Aspects
2018年02月06日 赞:2 评论:0 阅读:877
iOS 面向切面编程 使用(XAspect)
在学习面向切面编程的时候(Aspect),看到了一个简单的库的使用,XAspect,还有这个不是好几千star的Aspect。XAspect比着Aspect有一些局限性,只是切面使用,但是也是可以使用的同好的一个库。 对于面向切面编程,就是在不需要更改之前的代码逻辑,就能加入新的功能。主要用来处理一些具有横切性质的系统性服务,如日志记录、权限管理...【详细】
面向切面编程 XAspect
2017年12月25日 赞:4 评论:0 阅读:1187
监听Iphone系统音量
在做语音聊天或者直播软件的时候,使用自定义的语音推流或者使用第三方SDK,监听设备的系统音量,从而调节软件合适的音量输出。 对于iOS7之前的设备已经不再多说,主要是之后的系统。 首先在AppDelegate,- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 里边 加上自己的监听 //监听系统声音 AVAudioSession ...【详细】
Iphone系统音量
2017年12月07日 赞:2 评论:0 阅读:664
iOS 接入微信 Mars_Xlog 文件解析(带加密log文件)
Mars 最近更新了新功能,加入了日志加密功能,包括PRIV_KEY 和 PUB_KEY。 一、所以首先去微信开发者平台获取自己log日志的加密的key。 二、然后更新下载之前mars,编译脚本倒入到自己的项目 三、若之前使用着xlog,会有两个文件(log_crypt.h,log_crypt.cc),在新版本倒入项目之后已经不需要了。 四、然后就是修改mars/xlog 下的appender。在main文件...【详细】
Mars log文件加密 解析
2017年12月05日 赞:3 评论:0 阅读:534
Swift - 访问控制(fileprivate,private,internal,public,open)
在 Swift 语言中,访问修饰符有五种,分别为 fileprivate,private,internal,public 和 open。 其中 fileprivate 和 open 是 Swift 3 新添加的。由于过去 Swift 对于访问权限的控制,不是基于类的,而是基于文件的。这样会有问题,所以 Swift 3 新增了两个修饰符对原来的 private、public 进行细分。 一、各个修饰符区别 1,private private 访问级别所修饰的属性或...【详细】
swift 访问控制
2017年11月16日 赞:1 评论:0 阅读:592
iOS—Mask属性的在聊天气泡的使用
Mask属性介绍: Mask平时用的最多的是masksToBounds 吧. 其实除此以外Mask使用场景很多,看完之后你会发现好真是好用的不要不要的... Mask 英文解释是蒙板/面罩,平时我们称为蒙层. 在苹果官方文档里如下图,意思是Mask是一个可选的Layer,它可以是根据透明度来掩盖Layer的内容. 那再看下面这个说明,意思是Layer的透明度决定了Layer内容是否可以显示,非...【详细】
Mask属性 聊天气泡
2017年11月07日 赞:2 评论:0 阅读:538
GCD使用dispatch_group_notify、dispatch_group_enter、dispatch_group_leave处理多线程同步操作
有时在开发过程中,一个页面或者一个逻辑需要多个请求接口,然后这几个请求还需要处理完成才开始刷新界面。那么这是就用到GCD多线程了。 1.首先创建group dispatch_group_t dispatchGroup = dispatch_group_create(); 2.在每次请求之前进行 dispatch_group_enter:这个enter的意义是:通知group,下面的任务马上要放到group中执行了。 3.在每次请求结束之后 dispa...【详细】
GCD dispatch_group_notify
2017年11月06日 赞:1 评论:0 阅读:545
发现App占用磁盘空间瞬间变的很大很大
这些天在开发中突然注意到我们的App占用了我1个多G的磁盘空间,况且我还是经常重装调试,想必这肯定是哪里出现了问题,所以通过手机连接xcode下载手机沙盒下的文件来分析。 window -- > devices -- > 选择自己的真机设备 接上图第二步,选中自己的app 等个几分钟下载下来这个文件 显示包内容 发现了这1个G左右的磁盘占用基本都来此一个出...【详细】
Xcode9 Mallo Stack开关
2017年10月25日 赞:3 评论:0 阅读:869
iOS11 xcode9 问题汇总以及新特性(持续更新中)
1、提示Failed to acquire termination assertion when installing placeholder for 解决办法:卸载模拟器相关应用或者退出模拟器重新运行! 2、IOS11模拟器效果展示 https://o591a83vj.qnssl.com/iOS11.gif 3、Xcode9 打企业包新增了Plist文件 4、Xcode9无线测试 a、必要条件:Xcode9 iOS11 b、手机连接上Xcode,打开Xcode菜单:Windows->Device and Simulators。找到连接上的设备,把Conne...【详细】
Xcode9 ios11
2017年10月12日 赞:2 评论:0 阅读:2431
共57个 共3页 123
sina weixin mail 回到顶部