自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

弄潮者的博客

记录学习iOS开发的点滴,互相学习,一起进步~

  • 博客(148)
  • 收藏
  • 关注

原创 iOS 画板的实现,具有颜色、线宽、橡皮、撤销和清屏功能

完成一个简单地画板,能够实现画壁颜色和线宽的选择,以及橡皮功能,撤销前一步的操作,和清屏功能。

2015-08-08 08:19:10 5266 4

原创 iOS音乐后台播放及锁屏信息显示

实现音乐的后台播放,以及播放时,可以控制其暂停,下一首等操作,以及锁屏图片歌曲名等的显示

2015-08-06 17:52:49 11805 8

原创 关于“新奥创”的一些文章

关于“新奥创”的一些文章新奥创:多APP场景端到端的技术体系探索与突破一个多业务、多状态、多操作的交易链路,闲鱼架构如何演进?淘宝如何打造承载亿级流量的首页?...

2019-11-30 17:17:42 1136

原创 一道关于老鼠繁衍的算法题

题目源头这道题目是前些日子,面试阿里的时候,给的一道在线测评算法题题目描述大海中央的一座孤岛,上面本来没有老鼠。有一艘路过的船只在附近沉没了,船上 x 对 新出生的老鼠,顺着船只残骸漂流到小岛上。1. 每两个月一次生产,每次出生 2对 老鼠 2. 老鼠的寿命是 5个月,也就是说一辈子可以生产 2次3. 这个岛上,每个月因为神秘原因,假如存在 3个月大的老鼠,会死去一对 问 n个月后...

2019-11-12 22:10:46 1841

原创 白话isEqual和hash的关系

出发点:isEqual和hash的关系看到这个点,上网搜一下,首先出现的就是这篇文iOS开发 之 不要告诉我你真的懂isEqual与hash!第一次看完了,确实出现了一些问号以及看了评论区的提问:isEqual和hash都重写了来得出这两者的关系?hash都有默认的实现了,为什么要重写?等等问题本文,简单的做了下梳理,补充了些个人的白话理解,更通俗易懂些==和isEqual==...

2019-09-08 18:39:01 911

原创 CocoaPods深入一点

本文梳理了如下一些问题关于Cocoapods–verbose,–no-repo-updatepod install --verbose的过程podfile 和 podspec看点CocoaPods源码Podfile.lock 和 Manifest.lockpod install 和 update的区别那些常见的目录&指令期望用更简洁的话,做一些整理关于Coco...

2019-09-08 18:36:57 1035

原创 O(n)的排序算法-(基数排序及其js实现)

基数排序(Radix Sort)适用范围:将整数按位数切割成不同的数字,按每位分别比较。不只是适用整数,也适用于字符串和特定格式的浮点数等最高位优先(MSD),最低位优先(LSD)核心:(以整数为例)基:被排序的元素的’个、十、百位’等桶:“基”的每一位都有取值范围,一般数字是0-9共10中,10个桶步骤:for(每一个基) { // 循环内,以某一个’基‘为...

2019-08-30 23:31:24 409

原创 O(n)的排序算法-(计数排序、桶排序及其js实现)

总结一下,常见时间复杂度为O(n)的排序算法,以及给出js实现非比较排序,比较排序的时间复杂度下界为O(n*logn)计数排序(Counting sort)适用范围:待排数组arr[N],元素处在某一范围[min,max]核心:假设元素为整数,空间换时间,需要空间大小为O(max-min)的空间,来存储所有元素出现的次数如果元素个数多,但是数值范围较窄时,计数排序是很节省空间的...

2019-08-28 23:21:13 683

原创 Flutter起步的一些坑

Flutter安装过程中遇到的问题:- brew install --HEAD usbmuxd- ==> Cloning https://git.sukimashita.com/libusbmuxd.gitCloning into '/Users/yimo/Library/Caches/Homebrew/usbmuxd--git'...fatal: unable to access ...

2019-08-26 23:13:11 538

原创 dispatch barrier async/sync异同点

前言我们之前大多数都接触过dispatch_barrier_async,这也是GCD提供的解决数据竞争的一种方式,常称作异步栅栏也常通过pthread_rwlock读写锁,来解决数据竞争问题当然,还有很多方式。本文不再讨论如何使用,具体使用大家自行google,而是简洁的讲下dispatch_barrier_async和dispatch_barrier_sync两者的区别,后者可能被很多人...

2019-07-08 22:50:00 412

原创 fishhook学习总结

关于hookOC方法可hook,得益运行时特性,方法调用底层都是msg_send(id,SEL)的形式,这为我们提供了交换IMP的机会函数地址偏移量C函数在编译连接时就确定了函数指针的地址偏移量offset,offset在编译好的可执行文件是固定的,而可执行文件每次被重新装载到内存中时被系统分配的起始地址是不断变化的(lldb用imagelist可以获取运行中的今天静态函数指针地址...

2019-07-07 16:22:01 1310

原创 iOS内存管理方案之一_TaggedPointer

看一个例子@property (nonatomic, copy) NSString *testStr;{ dispatch_queue_t queue = dispatch_get_global_queue(0, 0); for(int i=0;i<10000;i++) { dispatch_async(queue, ^{ self...

2019-07-02 22:34:43 460

原创 MLeaksFinder学习记录

title: MLeaksFinder学习记录date: 2019-06-30 21:06:01tags:不久之前的学习笔记了,整理下~结合源码看更佳~内存泄露检测Leaks检测leaded memory,Allocations通过MarkGeneration检测abandoned memory(仍然被引用但是没用的内存),操作麻烦,不够及时精准定位MLeaksFinder...

2019-06-30 22:06:17 829

原创 iOS逆向的一点总结

这里写自定义目录标题一张图一些常用的工具一张图之前在http://www.iosre.com/ 上看到的,我觉得整个学习思路非常清晰:一些常用的工具砸壳:越狱市场/clutch/dumpdecryted加壳:对可执行文件的编码进行改变/加密/压缩,达到保护程序代码的目的。App Store下载的ipa包是会加壳的脱壳/砸壳:将未加密的可执行文件还原出来头文件:class-d...

2019-06-26 22:17:05 447

原创 关于fishhook

关于fishhook,最近关注到的几篇文章,mark一下目前只是个人简单的学习了其实现原理及应用场景,真正理解全部其实内容挺多的。之前了解过些逆向,所以看起来还算比较流畅,后续有时间实践后再总结下1、fishhook 的实现原理浅析2、fishhook 使用场景&源码分析3、objc_msgSend Hook 精简学习过程4、FBRetainCycleDete...

2019-03-31 21:27:48 1065

原创 iOS签名机制

iOS签名机制写于前写一个系列本文概要About Code SigningBenefits of Code SigningiOS签名机制从automatic signing入手开发App到安装的流程从AppStore下载AppProvisioning Profile概念补充参考文档写于前写一个系列对称加密&amp;amp;amp;amp;非对称加密&amp;amp;amp;amp;混合加密单向散列函数&amp;amp;amp;amp;数字签名&amp;amp;amp

2018-11-13 18:22:28 1370

原创 单向散列函数&数字签名&数字证书

写于前iOS中常在哪些场景应用到支付密码、验证码相关的业务场景之前个人维护的一个数字证书模块,与密码学相关知识也紧密相关,同时数字证书在我们的业务场景中,是作为指纹支付的基础iOS的签名机制。常常跟着网上的教程一顿操作,然而却不知道原理是什么。个人觉得,知道原理后续遇到问题也更能快速定位哪个环节的问题,也能学习优秀的技术方案是如何设计的写一个系列对称加密&amp;amp;amp;amp;amp;amp;amp;非对称加密...

2018-11-12 12:14:32 1871

原创 对称加密&非对称加密&混合加密

对称加密&amp;amp;amp;amp;amp;amp;amp;非对称加密&amp;amp;amp;amp;amp;amp;amp;混合加密写于前iOS中常在哪些场景应用到写一个系列本文概要对称加密(Symmetric Cryptography)非对称加密(ASymmetric Cryptography)混合加密(Hybrid Cryptography)总结写于前iOS中常在哪些场景应用到支付密码、验证码相关的业务场景之前个人维护的一个数字证书模块,与密码学相关知识也紧密相关,同

2018-11-09 10:23:13 3462

原创 小程序分享至群群消息小结(包括分享到App)

以下是18年3月底在公司内部的分享,虽然小程序对于分享回调有所限制(下文会说明),但是整体方案依然是可行的去年做过小程序群成员相关的信息展示需求,后续常有同事来问细节。 因此把去年做完后的梳理的小结发出来供参考。 微信文档现在相较去年也有所更新完善,但大致流程不变。小程序分享获得群信息小结官方文档有,但是较分散,所以对这块知识作一个小结,能快速了解小程序分享至群获...

2018-09-15 22:24:52 4692

原创 Cordova源码学习(二)-Native回调JS

本文只对JS与Native之间的交互进行源码阅读。至于Cordova如何开发插件等等,请参考Cordova官方文档:https://cordova.apache.org/docs/en/latest/Native回调JS流程图解析Native Native方法执行完,通过sendPluginResult开始,回调结果给jssendPluginResu...

2018-09-07 15:40:02 881

原创 Cordova源码学习(一)-JS调用Native

本文只对JS与Native之间的交互进行源码阅读。至于Cordova如何开发插件等等,请参考Cordova官方文档:https://cordova.apache.org/docs/en/latest/JS调用Native流程图流程图 解析index.html 调用 入参分别为 successCallback:成功回调failCallback:失败...

2018-09-06 18:31:36 933

原创 iOS首次安装打开APP白屏问题总结

表现最近在负责一个新的APP的开发。最近部门内测,反馈来一些问题,主要表现在首次安装该APP,首次启动,页面白屏没有数据。卸载再装or后台杀死重新打开,就好了原因:先前小范围测试有遇到过,以为是没有允许该APP使用网络请求的原因,当时在设置里面允许了就好了,但那时候同时杀死了APP,再次打开好了。但这不是真正的原因iOS10之后,APP首次安装会有询问【是否允许“xxxAPP”使用数...

2018-08-12 22:46:44 7529

原创 Method Swizzling与JSPatch探究(二)

以下笔记整理于2017-03-22 当时作为无埋点预研的学习整理,由于小组是客户端和前端混合的小组,所以下面尽可能以偏简单的文字在组内分享。 第一部分地址为:Method Swizzling与JSPatch探究(一)4、兼容性以hook UIViewController的viewWillAppear的方法为例 4.1 仅method Swizzling, 无JSPatch...

2018-08-01 23:12:53 428

原创 Method Swizzling与JSPatch探究(一)

以下笔记整理于2017-03-22 当时作为无埋点预研的学习整理,由于小组是客户端和前端混合的小组,所以下面尽可能以偏简单的文字在组内分享。用最简单的文字,来简单说明Method Swizzling和JSPatch hook selector的原理。并试验当两者共用时,兼容情况。(无埋点预研)如果看此文之前,对这两者有些概念那就最好啦目录:1、从[receiver messag...

2018-08-01 23:09:12 225

转载 Xcode 代码提示功能失效

阅读目录一、简约版二、命令版  三、顽疾版 注:附:前言:  以前好像很少碰到Xcode中代码提示出问题的情况,最近经常遇到这个问题。没有了Xcode的智能提示,发现我已完全不会写代码了。  本来想吐槽下万恶的baidu,鉴于百度前端时间的各种(贴吧、竞价排名)风波刚过,人坚不催。在BD试了各种解决办法,清理缓存,删除索引,无果下,最终来到Google发

2016-09-05 20:30:46 16735 2

转载 使用Xcode Instruments Leak解决内存泄漏问题

写于前:有很多写Leak教程的文章,当时在使用的时候一直卡在Step4,不能定位memory Leaks代码的位置,最后找到这篇文章的Step5说到dSYM文件。其他文章都没提及。--->Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件iOS 5.0之后apple引入了Xcode编译器特性ARC(Au

2016-07-24 21:34:47 9346 1

原创 iOS单元测试/Kiwi/TDD/Code Coverage

单元测试学习相关文章

2016-07-24 21:29:27 1775

转载 iOS的MD5/SHA1加密算法的实现

MD5/SHA1加密算法的实现 for iOS

2016-07-24 21:12:04 1392

原创 ScrollView的contentSize属性 与 AutoLayout(Masonry布局)

About ScrollView contentSize 与 AutoLayout(Masonry布局)

2016-03-15 20:18:52 8562

原创 About Zsh & Go2Shell & iTerm2

About Zsh & Go2Shell & iTerm2

2016-03-15 20:04:06 2418

原创 iOS越狱检测总结及代码实现(JailBreak)

iOS越狱检测总结及代码实现

2016-02-20 15:56:22 9531

转载 iOS系统越狱检测

越狱检测/越狱检测绕过——xCon一直忽略了越狱检测与越狱检测绕过的问题,因为我认为在app争抢装机率的环境下,是不会在乎对方的设备越狱与否的。但很显然,我忽略了一个问题,app在设计的时候或许会依照设备是否越狱而采取不同的流程,比如说对越狱的设备采取更多的安全措施,在这种场景下,越狱检测是否可靠就成为了关键问题。本篇文章主要介绍越狱检测的常见方法(并配有相应的测试代码),以及最流

2016-02-19 16:34:27 6370

转载 越狱检测的攻与防

越狱检测的攻与防原文地址:链接在应用开发过程中,我们希望知道设备是否越狱,正以什么权限运行程序,好对应采取一些防御和安全提示措施。iOS7相比之前版本的系统而言,升级了沙盒机制,封锁了几乎全部应用沙盒可以共享数据的入口。即使在越狱情况下,限制也非常多,大大增加了应用层攻击难度。比如,在iOS7之前,我们可以尝试往沙盒外写文件判断是否越狱,但iOS7越狱后也无该权

2016-02-19 16:31:47 3313 1

原创 SASS ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/sass

ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/sass

2016-02-13 21:10:45 2075

转载 Eclipse启动时报需要安装"Java SE 6 Runtime"致无法启动解决方案

今天心血来潮,把MBP升级到了osx mavericks,然后启动了闲置好久的eclipse,启动时居然报错了:若要打开Eclipse.app,您需要Java SE 6 runtime,您想现在安装一个吗?选择"安装",居然又提示"软件无法下载",看来系统升级后,eclipse是无法启动了。从网上查了一些资料,貌似 Mac升级到10.8.2以后,系统原本自带安装的JDK

2016-02-10 20:15:30 1323

原创 Version 1.6.0_65 of the JVM is not suitable for this product

Version 1.6.0_65 of the JVM is not suitable for this product

2016-02-10 20:13:21 5311

转载 iOS: 枚举类型 enum,NS_ENUM,NS_OPTIONS

原文地址:点击打开链接一般情况下,我们采用C风格的enum关键字可以定义枚举类型。[cpp] view plaincopyenum{       UIViewAnimationTransitionNone,      UIViewAnimationTransitionFlipFromLeft,      UIV

2015-12-09 11:06:07 1143

转载 Xcode真机测试could not find developer disk image解决方法

在使用Xcode进行真机调试的时候,有时根据真机的系统不同,会出现could not find developer disk image 错误,这是由于真机系统过高或者过低,Xcode中没有匹配的配置包文件,我们可以通过这个路径进入配置包的存放目录:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platfor

2015-12-06 14:05:44 989 1

转载 Vim命令合集

Vim命令合集   原博地址:链接命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file

2015-12-06 11:52:48 795

转载 iOS开发之浅谈MVVM的架构设计与团队协作

原文地址:链接今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正。本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦~)。  由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP

2015-12-05 21:13:28 1227

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除