自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 objc-runtime源码编译

最近在学习objc-runtime的源码,原本旧版本的代码已经编译完成了,但是更新系统之后又不行了,于是下载了最新的源码,重新进行编译,并记录碰到的问题,本文使用的源码版本是objc-runtime-818.2, 使用的Xcode版本是12.4:系统版本macOS Big Sur 11.1,现在开始漫长的编译改错流程:文章目录unable to find SDKsys/reason.h not foundmach-o/dyld_priv.h not foundos/lock_private.h n

2021-02-04 16:22:08 773

原创 RN下拉刷新(二):修改RN代码,集成iOS原生下拉刷新

文章目录

2019-12-31 16:31:28 653 2

原创 RN下拉刷新(一):使用JavaScript实现

文章目录

2019-12-31 13:17:07 909

原创 React-Native: Could Not find iPhone 6 Simulator问题

最近在github上下载的RN项目出现了两个奇怪的问题,经过网上查找和自己的实践之后,记录在此文章目录Could Not Find iPhone 6 SimulatorCFBundleIdentifier", Does Not ExistCould Not Find iPhone 6 Simulator运行项目之后,出现如下问题:出现这个问题的原因是很明显,是因为找不到iPhone模...

2019-12-13 12:45:24 810

原创 记一次使用RN实现侧滑删除

最近公司全面推行使用React-Native进行跨平台开发,虽然我对这方面不熟悉,而且对RN也没有啥兴趣,但是也没办法,也没有学啥js和RN的东西,直接刚。正好要实现一个侧滑删除功能,网上搜了一波,没发现啥好的说明,于是决定自己实现一波。但由于自己没有系统的学过RN,所以写的不怎么给力。首先看下效果图,如下所示:要写这个组件,有两个问题要先解决,这个页面已经存在了,我如何能在做较小修...

2019-12-10 22:51:45 742

原创 json2Dart工具

最近公司在推动跨平台开发,大佬们有意向使用Flutter编写App中的部分页面,于是自学了一波Flutter,但是在Flutter的学习过程中发现结合json_annotation库时,发现要写一个json解析文件实在太麻烦了,在使用过程中,发现网站json转dart,但是感觉使用起来还是比较麻烦,于是自己动手使用python编写了一个json转dart实体的脚本。并用工具解析编写了公司项目js...

2019-10-31 17:58:39 3245

翻译 Dart之旅

最近看见同学都这么努力,而我每天就是上班撸码,下班玩游戏,感觉自己也应该努力一点,做为一个大龄程序员,为了不必淘汰,必须要加强学习。Google出了个Flutter,像ReactNative一样,可以编写移动应用程序,于是决定学习一波,看了一天Dart官网的文档,决定写一篇博客加强记忆,这篇博文就是自己对官网文档的一个翻译。文章目录基本的Dart程序重要概念Dart的关键字变量默认值Fina...

2019-03-12 23:51:02 652

原创 3DTouch与TodayWidgets

公司App添加了3DTouch的需求,这个需求不是我做的,做这个需求的同事最后拿出来分享了一波,我也想学一学这东西,毕竟自己也换了个支持3DTouch的iPhone,我让他把他分享的ppt给我,于是就有了这篇博文,权当学习,万一哪天同事不小心看到了这篇文章,希望不要怪我盗用他的资源,在些感谢大飞哥先。文章目录3DTouch简介静态设置动态实现事件处理Peek & PopTodayWi...

2019-03-09 23:37:18 348

原创 粗略使用OpenSSL编写Apple Push工具

好久没有写过博客了, 自从上家公司裁员,加入新公司之后,每天忙的不可开交,需求不断,每天23点下班,感觉一天24小时都不够用。还好现在大忙的时候已经过去了,临近过年,也没有什么太大的需求了,于是有空就写下博客,记录一下自己做的事。作为一名iOS程序员,推送方面的知识是不可能不接触到的,做推送方面的东西又不可能不调试,每次我都是使用NWPusher这个工具来做测试,用起来确实很方便,但是我却不...

2018-12-12 14:48:11 241

原创 YYKit源码学习——YYMemoryCache

YYKit是在项目开发中经常使用的一个库,我很膜拜作者,很惭愧,同样身为90后,差距实在太大了,别人这么牛逼,我却如此菜鸡,我也知道,到了一定程度,人就会遇到技术瓶颈,对于我,提高自己水平的惟一方法就是阅读源代码,我也一直很想这样学习,下载了很多源代码,但却一直无法静下心来学习,看到那长篇大幅的英文字母就头痛,今日公司无事,于是又瞥见桌面上的YYKit文件夹,于是打开了看一看,挑选了代码比较...

2018-07-19 15:58:04 1056

原创 Objective-C高级编程 要点记录

内存管理BlockGCD内存管理自己生成的对象,自己所持有 (alloc/new/copy/mutableCopy)非自己生成的对象,自己也能持有, 如retain方法不再需要自己持有的对象时释放, 使用release方法无法释放非自己持有的对象autorelease的具体使用方法 1. 生成并持有NSAutoreleasePool对象 ...

2018-07-12 18:28:20 893

原创 iOS元类面试一题

好久没有更新博客了,最近又在找工作,公司突然裁员了,骂了隔壁,今天面试的时候遇到了一道程序题,限于本人水平,没有答出来,回来之后经过详细考虑和讨论之后,得到了结果,现在记录于此。题目就是“下面这个程序的输出的结果是什么?”。 刚开始看到这题目的时候我懵逼了,完全不知道是怎么回事。因为从来没有碰到过这种面试题,也没有这么写过。于是回来各种请教,各种查资料,最终终于得到结果。答案就在...

2018-07-06 22:45:31 1850 2

原创 iOS编译libx264+libfdk-aac+FFmpeg

最近在学习FFmpeg,感觉基本流程还算清楚明白,不过之前一直是在Mac环境下学习,一个brew install一步搞定,不过我最终的项目是在iOS上,所以今天就试着编译了一下iOS环境下的FFmpeg,还好网上有这方面的文章,我跟着一步一步终于把FFmpeg给编出来了,现在做一个汇总,免得到时候再次编译的时候又要重新去寻找,此次基于FFmpeg-3.4版本编译编译libx264编译libfdk

2017-12-15 00:49:46 3150 4

原创 使用FFmpeg+SDL打开Mac摄像头

最近由于项目涉及到音视频方面的一点东西,所以研究了一波FFmpeg,其实我对这方面是非常有兴趣的,但是由于自己不是计算机专业出身,很多其他的东西都不了解,所以只能叹息心有余而力不足。FFmpeg是一个开源的东西,几乎没有文档,幸运的是有雷神为我们铺下了一条学习的道路,我也是跟着这条道路在走下去。可惜的是2016年7月雷神就已离我们而去,我们虽然年纪相仿,但是差距实在是大,我也很膜拜这位年轻的技术大神

2017-12-12 13:00:18 2928 1

原创 使用PDFKit写一个基本的PDF阅读器

PDFKit相关类加载PDF文档显示PDF文档滚动控制缩放控制目录视图文档搜索Annotation结束 WWDC 2017 苹果发布了一个新的关于PDF的库—PDFKit, 看起来很不错的样子,现在是时候学习一波了。PDFKit相关类PDFKit的相关类不多,用起来也很容易,比之前苹果的QuartzCore的C语言API使用起来容易太多了。相关类如下:1、PDFDocument

2017-11-23 17:43:22 3953

原创 AVFoundation学习笔记(四): 媒体的创建与编辑

组合媒体时间处理CMTimeCMTimeRange创建组合资源示例音频混合自动调节音量视频过渡AVVideoCompositionAVVideoCompositionInstructionAVVideoCompositionLayerInstruction部署视频计算通过和过渡的时间范围创建组合和层指令创建和配置AVVideoComposition应用过渡效果溶解

2017-09-14 23:14:57 2297

原创 AVFoundation学习笔记(二):视频播放相关

上一次学习了《AVFoundation开发秘籍》的第一至三章,现在继续学习AVFoundation.视频播放视频播放综述AVPlayerAVPlayerLayerAVPlayerItem播放基础播放视频状态监控时间处理AVPlayer时间监听定期监听边界时间监听取消监听播放结束监听生成缩略图字幕显示airplay获取标题章节数据查找章节启用修剪兼容传统资源

2017-09-03 20:46:09 7436

原创 AVFoundation学习笔记(一):音频录制、资源载入

最近在学习《AVFoundation开发秘籍》这本书,以前没有怎么接触过,学习之后瞬间感觉AVFoundation这个框架好强大,值得深入的学习。写点笔记以加强记忆和备忘。AVFoundation入门文本转语音播放和录制音频音频会话分类配置音频会话使用AVAudioPlayer播放音频创建AVAudioPlayer对播放的控制音频中断的处理线路改变的影响使用AVAudioRec

2017-09-02 13:02:17 12128 3

原创 WLFUploadButton

WLFUploadButton.hWLFUploadButton.m main.m效果图:

2017-06-23 17:20:56 254

原创 WLFModel

最近真是忙的一逼,程序员和产品真的是死对头,公司新来两个产品,本来项目紧,需求改这样,又改那样。不管是iOS还是Android都对他们发了脾气。我也有句“妈卖批”想对他们说。YYKit的基本流程WLFModel的使用WLFPropertyInfo的定义WLFClassInfo的定义modelWithDictionaryobjc_msgsend的用法执行结果YYKit的基本流程在工作中一

2017-06-19 12:05:56 362

原创 贪心算法

贪心算法和动态规划有异曲同工之秒,能用贪心法的,就不用动规。我只想说,动态规划真TM难。分数背包问题Huffman编码贪心算法这样一个算法,它在每一步都做出在当时看来是最优的方案,即它总是做出局部最优的选择。然后构成一个全局最优解。贪心算法也是一个强有力的算法,很多问题都能用贪心算法来解决。下面就说说两个经典的问题,分数背包问题和哈夫曼(Huffman)编码。分数背包问题分数背包问题是这样的,假

2017-05-24 12:16:13 478 2

原创 【算法导论】动态规划

动态规划这个算法,我一直都搞不明白,也许因为我数学能力太差的缘故,总是不得其要领,每次学习这个算法的时候,总是不知道所谓的状态转移方程到底是怎么样推导出来的。其实就在我写这篇博客的时候,我依然不清楚。什么问题能用动态规划来解决呢?动态规划问题的特征就是 最优子结构,一个递归结构:该问题需要求一个最优解该问题重复包含着子问题比如说经典的动态规划问题,最长公共子序列(如下所述),我们要求一个最长

2017-05-22 15:40:45 599

原创 用Python写自动化编译工具

我上家公司的主管,用Python写了一个自动化编译工具,用于一条命令编译出ipa,然后把ipa上传到公司的服务器,生成一个链接,可以直接下载,不明觉厉,所以我决定自己尝试写一个。有些事真是,你原本会以为很难,但当你下定决心去做的时候,其实就很简单了。说明相关工具PlistBuddysecurity代码示例代码说明配置文件Shell版本非完整效果展示说明其实自动化编译就是利用Xco

2017-05-17 18:15:26 1462

原创 再论红黑树

红黑树真TM是一个非常难的数据结构,至少对我这种非计算机专业的业余爱好者来说是非常难的,正好这段时间想学学这个,虽然中间断断续续的学了一点点,但是都没有彻底的去熟悉甚至去实现这样一棵红黑树,直到今天,才真正的实现了一棵红黑树。为了使自己所学的东西更加的巩固,于是决定不自量力,写篇博客,若有错漏,请指出,勿喷,毕竟本人只是一个非专业型娱乐辣鸡选手。什么是红黑树为什么要使用红黑树红黑树结构的定义

2017-05-13 18:31:07 855 4

原创 使用Python生成Xcode的Localizable.strings文件

众所周知,iOS的国际化是需要一个一个字符串写入到Localizable.strings文件中,在一个项目中,肯定会有N多个这样的字符串要去手动添加,这样做真的很操作。于是就用Python写了一点点代码,自动生成strings文件。起因使用方法效果展示代码说明使用方法读取已有内容检查目录文件处理统计信息起因最近项目急于上线,忙的手忙脚乱,两个月时间内,App从一个文件都没有,到现在

2017-05-06 15:30:52 1707

原创 二叉搜索树(Binary Search Tree)

BST的定义BST的前驱和后继BST的插入BST结构BST的中序遍历BST的查找BST的删除删除叶结点删除只有左子树的结点删除只有右子树的结点删除包含左右子树的结点完整代码BST的定义二叉搜索树是这样一种二叉树,对于一个结点x, 如果它的左子树的结点值都小于x,它的右子树的结点值都大于x。并且他的左子树和右子树也满足此特性的二叉树。二叉搜索树的中序遍历可得到数据的有序序列。BS

2017-04-18 23:55:04 369

原创 线性时间排序

一般说来,我们经常使用的都是比较排序,就是在排序过程中要进行比较操作,事实证明,比较排序的最好的时间复杂度是O(nlogn),但是在一些情况下,可以使用一些线性时间的排序方法。计数排序基数排序桶排序计数排序计数排序是假设输入x个整数,每个数都在0~k之间的一个整数,这样不需要比较操作,就可以将数列排列成序。代码简单如下所示:粗略的排序过程如下图所示:根据上图可知,计数排序总体可以分为以下几个步

2017-04-15 17:59:49 281

原创 画个小黄人

刚刚看完《笑点研究所》,贱贱的小黄人真有意思。今天早上,我看到这样一个视频,用代码绘制一个小黄人,本来想看看的,谁知道TM竟然有头无尾,就TM讲了几分钟,于是我决定自己试试动手绘制一个小黄人。首先,我自己是没有美术功底的,所以在网上随便找了一张小黄人的图,就是下面一图: 然后是我自己用代码画的图,如下: 虽然不是100%神似,但是也还过得去,见得了人吧,最后代码如下所示:其实这个代码没什么好讲

2017-04-08 15:03:49 7010 6

原创 排序算法——堆排序

做为一个非专业的娱乐型选手,虽然工作了这么多年,但是和专业型选手的差距还是不能忽视,要想有进步,就必须要加倍努力。注重内在的修养。相信广大非专业选手和我一样,虽然现在也偶尔写写博客,但是以前,我觉得写博客不是我这种靠自学的人该写的。其实写博客不是为了给别人看,而是为了自己更好的理解,更好的熟悉。真的开始什么是堆图解建堆代码实现真的开始也不知道为什么会有这么大一段感慨,可能比较念旧吧。网上关于

2017-04-07 14:50:26 361

原创 弹出式菜单的编写

效果展示PopMenu的定义PopMenu的实现属性的定义位置的调整隐藏菜单响应菜单点击显示菜单坐标定义分割屏幕蒙版路径结束 在QQ、微信的消息页面,右上角有一个“+”号,点击之后,可以弹出一个菜单,这个菜单最大的特点就是有一个箭头指向点击的按钮,现在就来编写这样一个弹出式菜单效果展示PopMenu的定义PopMenu的类定义如下所示: 如代码所示,首先定义PopM

2017-04-04 15:58:12 2345

原创 配置Struts-2.5.10

最近在学习JavaEE开发,今天学了下Struts2, 发现和书上略有不同,麻痹,新手学这个,感觉还真是有点操蛋,搞了TM一上午,终于把书上的第一个Struts2程序跑出来了,骂了隔壁,记录一下,要是以后再碰到,就有个参考了。Filter的配置strutsxml依赖包的问题动态Action的问题吐槽结束Filter的配置在web.xml中,配置Filter,如果没有web.xml,在项目

2017-03-24 12:00:27 8077 20

原创 <jsp:useBean></jsp:useBean>

什么是javaBeanjavaBean在jsp中的使用定义javaBeanjavaBean的初始化javaBean属性值的获取设置javaBean的值指定Value使用reqeust那么问题来了 最近刚开始学习Java Web开发,感觉很难,可能是思维方式不同,接受能力不强。学到javaBean的时候,遇到了一个jsp:useBean的问题,纪录一下,供以后查阅学习。什么是ja

2017-03-22 10:59:25 1022 1

原创 C++ Lamba表达式

麻痹,今天不知道怎么了,我竟然失眠了。本来在看电视,突然就想着写一篇关于Lambda的博文,一来算是打发时间,二来算是对自己白天的学习做一个总结吧。Lamba是C++11中最新的功能,Lamba说白了其实就是一个匿名函数,可以包含语句和定义。Lambda通用格式Lambda使用举例Lamba与函数指针Lambda捕获列表mutable关键字结束Lambda通用格式C++ 中的Lambd

2017-03-19 05:13:21 568 1

原创 图片轮播器

回顾一下之前的实现现在的区别效果展示代码说明图片轮播器是iOS开发中经常用到的一个组件,一般是采用UIScrollView来实现,但是系统的UIScrollView并不支持循环滚动,所以必须要自己手动实现。回顾一下在我从C++转做iOS之后,自己动手实现过一个。由于我本人只学习了不到一个月的iOS,对iOS各种组件的不熟悉,导致在工作中,我经常查找各种资料,开发App也产生了很大的阻碍。那

2017-03-10 15:59:46 579

原创 大写C语言注释

昨天无意中看到一道题:“编写一个程序,使一段合理C语言中的注释全部大写“。突然兴趣来了,于是决定自己动手来试试。这道题目看起来很简单,但是实际动起手来,还是有点难度。C语言注释说明注意问题状态变化图状态定义状态变迁完整代码C语言注释说明C语言的注释分为两种,一种是单行注释,一种是多行注释。单行注释:顾名思义就是当遇到换行之后即表示注释已结束,用//表示多行注释:注释以/*开始并且以*

2017-01-07 18:17:58 2774

原创 iOS音频播放之AudioQueue(终结篇):缓存系统的实现

缓存系统的设计第一次设计第二次设计第三次设计缓存系统的实现缓存文件的命名播放器的初始化计算可读字节标记已缓存区间音频播放Seek操作清理缓存流程图示例程序播放和暂停更新定时器前进和后退进度条拖动状态变化通知退出播放效果演示最终总结代码链接 对于移动开发来说,省流量是必须的。前三篇讲了用AudioQueue来编写流媒体播放,但是缓存的重要不言而喻。有网络的

2017-01-03 17:48:30 5005 9

原创 iOS音频播放之AudioQueue(三):网络流媒体的播放

从AudioStreamer讲起为什么要使用CFNetworkCFNetwork示例下载图片代码示例代码说明代码演示流媒体的播放CFNetwork的预处理Seek操作播放完成 在前两篇中讲了使用AudioQueue流式播放本地文件的功能,本篇就来讲讲网络流媒体的播放。其实已经有了本地流式播放功能,网络流媒体播放基本就没问题了,只是数据来源于网络而已,但还是有些问题要注意。从A

2016-12-30 13:50:27 2671 2

原创 iOS音频播放之AudioQueue(二):本地音乐的时长,进度和Seek

在上一篇iOS音频播放之AudioQueue(一):播放本地音乐中,用AudioQueue实现了流式本地文件的播放,心情还是挺激动的,但是并没有获取时长和进度,也没有Seek操作,本节将实现这些功能获取音频时长获取音频播放进度AudioQueueGetCurrentTime参数说明代码示例Seek操作手动计算偏移量AudioFileStreamSeek结束获取音频时长获取音频的时长

2016-12-26 17:37:10 4897 2

原创 iOS音频播放之AudioQueue(一):播放本地音乐

AudioQueue简介AudioStreamer说明AudioQueue详解AudioQueue工作原理AudioQueue主要接口AudioQueueNewOutputAudioQueueAllocateBufferAudioQueueEnqueueBufferAudioQueueStart Pause Stop Flush Reset DisposeAudioQueueFre

2016-12-23 15:07:45 11091 7

原创 读《TCP/IP详解》第21、22、23章:TCP的超时与重传、坚持与保活定时器

TCP的超时与重传RTT的测量拥塞避免算法快速重传与快速恢复算法TCP的坚持定时器糊涂窗口综合症TCP的保活定时器TCP的超时与重传TCP提供可靠的运输层,使用的方法之一就是数据确认,但数据和确认都可能丢失,TCP通过在发送时设置一个定时器来解决。如果当定时器溢出还没收到,就重传该数据。对于每个TCP连接,都会管理4个不同的定时器重传定时器:当希望收到另一端发回的数据确认时设置,若定时

2016-12-16 15:59:36 1312

objc4-required-headers.zip

编译objc4-818.2所需头文件

2021-02-04

FFmpeg-iOS

iOS平台,包含libx264及fdk-aac的FFmpeg头文件及lib文件 1. libbz2.tbd 2. libz.tbd 3. libiconv.tbd 4. CoreMedia.framework 5. VideoToolbox.framework 6. AudioToolbox.framework 7. AVFoundation.framework

2017-12-15

空空如也

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

TA关注的人

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