IOS精益编程
文章平均质量分 62
Quinn士魁
90后、公司上海、目前工作在北京,熟悉Swift、Objective-C,了解H5。
目前共参与开发过5款IOS端APP;包含直播Live功能、单词游戏功能、视频录制功能、视频滤镜后期处功能、物流管理功能、购物功能;积累了GPUImage图形及音视频处理、数据库存储、UI、多线程、数据解析、性能优化等经验。
接下来会继续深入GPUImage、OpenGL ES、H5等方面的学习研究;希望有共同爱好的人一起探讨、相互学习。邮箱 xoxo_X@126.com、QuinnX@126.com
展开
-
iOS中Runtime的设计
本文引用资料:https://juejin.im/post/58f833458d6d81005875f872https://draveness.me/loadhttps://www.jianshu.com/u/2de707c93dc4https://zhuanlan.zhihu.com/p/26379488https://juejin.im/post/58f830c3a22b9d0065...原创 2019-06-01 20:11:37 · 440 阅读 · 0 评论 -
realm
http://www.jianshu.com/p/052c763d5693原创 2016-11-08 17:01:49 · 351 阅读 · 0 评论 -
cell复用问题,高度自适应问题
快速解决cell复用问题,高度自适应问题。原创 2016-11-19 16:12:42 · 1270 阅读 · 0 评论 -
异步线程,不能添加alertView
//异步线程,如果没有回到主线程,添加alert会导致线程问题,可能大家都只记得子线程不能更新UI,却疏忽了这一点 let word = realm.objectForPrimaryKey(LibraryWord.self, key: curQuesModel.wordId) print((word?.word)!)// Async.backgroun原创 2016-11-21 11:28:23 · 656 阅读 · 0 评论 -
数据存储之NSUserDefaults
语言范畴:Objective-C、Swift 用途 : 数据存储 NSUserDefaults苹果官方文档用法: 1.Objective-CNSUserDefaults 是一个单例,通过standardUserDefaults方法,全局获取。 系统的 NSUserDefaults 可以快速保存添加读取删除基本数据类型NSUserDefaults *defaults = [NS原创 2016-11-23 21:44:22 · 526 阅读 · 0 评论 -
数据存储之归档-NSCoding协议
数据存储之NSUserDefaults 语言范畴:Objective-C、Swift 用途 : 数据存储 归档:数据存储之NSUserDefaults有一个致命的缺陷,只能存储常用的类型。归档可以实现把自定义的对象存放在文件中一、Objective-C 1.新建对象,继承NSObject2.如果想将一个自定义对象保存到文件中必须实现NSCoding协议@interface Person原创 2016-11-23 23:08:21 · 1387 阅读 · 0 评论 -
数据存储之Realm数据库
Realm官网Realm速度:比 SQLite 和 Core Data 更好更快的数据库支持 Realm范围:支持 iOS(Swift 和 Objective-C 语言都支持)和 Android Realm我喜欢的原因:相对于FMDB等数据库,Realm读取数据非常快,可构建大型应用,语言通俗易懂,容易上手,而且跨平台简单的数据存储,可以使用NSUserDefault稍微复杂的一点的可以使用归档原创 2016-11-24 23:01:09 · 1190 阅读 · 0 评论 -
少数派之指纹识别技术Touch ID
苹果从iPhone5S开始,具有指纹识别技术。但是,是从iOS8.0之后程序员具有使用指纹识别的权利——苹果允许第三方 App 使用 Touch ID 实现免密码登陆。使用时涉及关键点:iOS提供了LocalAuthentication框架,以便我们使用指纹识别。 指纹识别Touch ID提供3+2共5次指纹识别机会,如果五次指纹识别全部错误,就需要手动输入密码。接入流程1、import Loca原创 2016-12-01 13:55:31 · 994 阅读 · 0 评论 -
图像处理之CPU图片滤镜
处理之前的图片// 灰色处理 Here is the code for sepia image- (UIImage *)imageProcessedOnCPU:(UIImage *)imageToProcess;{ // Drawn from Rahul Vyas' answer on Stack Overflow at http://stackoverflow.com/a/421172原创 2016-12-08 14:55:22 · 2346 阅读 · 0 评论 -
图像处理之CoreImage图片滤镜
CoreImageCPU处理方式 http://blog.csdn.net/xoxo_x/article/details/53518322打印滤镜: NSArray *filterNames = [CIFilter filterNamesInCategory:kCICategoryBuiltIn]; NSLog(@"Built in filters"); for (NSString原创 2016-12-08 15:04:49 · 1699 阅读 · 0 评论 -
iOS 画板(实现远程操控、教学)
前言:我们开发一款名为《电影神灯》的软件,是一款学习情景英语的软件,里面有直播功能,我们用的是网易的,实现了互动直播,然而对于教学来说并不是足够的,产品需要白板功能,虽然网易的有白板功能,但是,功能不行,没有办法换背景照片。而且收费是42元/位/月。太贵了,于是我开始自己开发白板功能实现远程操控,交互····功能:撤销清屏更换背景线条颜色(可实现)矩形、圆形、三角形(可实现) 提神时间:原创 2016-09-27 00:14:19 · 2011 阅读 · 3 评论 -
算法之乱序键盘 12.01更新
实现效果如下:需求:【 * - 拼写单词,实现将单词的顺序打乱,并增添其他可选字母*】【* - 实现简单的记忆功能,使得拼写更加人性化*】【* - 按钮变色,全选后变色,判断变色等一系列视觉效果*】【* - 优化算法,提高可执行性,效率*】第一种-不具有记忆能力的键盘(也就是只能删除,不能单独取消某一个字母)核心算法自定义键盘下载地址(http://download.csdn.net/detail/原创 2016-11-25 13:29:14 · 1547 阅读 · 2 评论 -
iOS StoryBoard的奇淫巧技
版本适配时:多个Label 压缩、拉伸优先级设置原创 2017-05-17 18:24:39 · 684 阅读 · 0 评论 -
iOS 视频压缩、音视频混合、音频混合
本文将介绍视频、音频处理的方法;方便大家使用Demo:https://coding.net/u/Xoxo_x/p/VideoAndAudio/git/blob/master/AVFoundation%E9%9F%B3%E8%A7%86%E9%A2%91%E6%B7%B7%E5%90%88%E5%8E%8B%E7%BC%A9.zip或者:https://coding.net/u/Xoxo_x/p/V原创 2017-06-14 22:17:54 · 3143 阅读 · 0 评论 -
iOS直播app——GPUImage渲染底层实现
原文地址:http://mt.sohu.com/it/d20170116/124410052_473801.shtml 一、前言 本篇主要讲解GPUImage底层是如何渲染的,GPUImage底层使用的是OPENGL,操控GPU来实现屏幕展示 由于网上OpenGL实战资料特别少,官方文档对一些方法也是解释不清楚,避免广大同学再次爬坑,本篇讲解了不少OpenGL的知识,并且还讲解了花了大量时转载 2017-05-23 10:23:25 · 1916 阅读 · 0 评论 -
iOS GPUImage研究序三:GPUImageMovie简介
前言:GPUImageMovie 不支持在线视频播放--换而言之,他仅仅支持本地视频文件播放、因此显得很鸡肋。其大概使用方法如下:初始化 movieNSURL *sampleURL = [[NSBundle mainBundle]URLForResource:@"mv" withExtension:@"MPG" subdirectory:nil];movieFile = [[GPUImageMov原创 2017-05-01 22:43:03 · 2393 阅读 · 0 评论 -
Alamofire
http://www.jianshu.com/p/dd71e15df5d0原创 2016-11-08 11:27:32 · 495 阅读 · 0 评论 -
数据存储之SwiftJSON
SwiftyJSON 可以让你在 Swift 语言中更好的处理 JSON 数据了,下面我们来看一篇关于Swift开发之SwiftyJSON的使用祥解(附样例,用于JSON数据处理)的例子。1,SwiftyJSON介绍与配置SwiftyJSON是个使用Swift语言编写的开源库,可以让我们很方便地处理JSON数据(解析数据、生成数据)。GitHub地址:https://github.com/Sw原创 2016-11-08 10:33:42 · 1118 阅读 · 0 评论 -
swift 框架大全--NB 转自github
版本:Swiftgithub排名 https://github.com/trending,github搜索:https://github.com/search主要工作说明: 1. 将Swift从Objective-C混合的md文件中抽出(正在进行…)使用方法:根据目录关键字搜索,记得包含@,以保证搜索目录关键字的唯一性。问题反馈:请广大网友只按照目录结构(即使目录结构有问题)添加三方库,并pu转载 2016-11-03 16:47:01 · 26309 阅读 · 0 评论 -
我是这样理解MVC的
对于MVC,我想表达一点不一样的东西,以下观点是我对MVC的总结以及应用。如果你存有异议或者有什么要指教的,请留言或者联系我。 我擅长用的是MVC与模块化代码的结合,本身模块化就可以实现项目的解耦,配合MVC以及一些胶水代码,我发现项目维护起来十分容易MVC可能是这样的: 首先,如果你是一个iOS的新人,你千万不要被UIViewController所蒙蔽,Controller是什么,是...原创 2018-03-24 00:18:31 · 282 阅读 · 0 评论 -
iOS App 启动性能优化
导语本文介绍了如何优化iOS App的启动性能。本文分为四个部分: 第一部分科普了一些和App启动性能相关的前置知识第二部分主要讲如何定制启动性能的优化目标第三部分通过在WiFi管家这个具体项目的优化过程,分享一些有用的经验第四部分是关键点的总结。【第一部分】一些小科普因为篇幅的限制,没有办法很详尽的说明一些原理性的东西,只是方便大家了解哪些事情可能跟启动性能有关。同时,内容相对也比较入门转载 2017-10-09 18:22:46 · 1162 阅读 · 0 评论 -
IOS 星星评分控件-Swift3.0
效果:特点:点击、滑动、任意切 性能:忽略不计,不是最优模式、实现简单思路:1. 首先想到的是重写draw方法、实现比较耗时、而且性能不一定最优2. 放置五个button、但是没有办法随意控制,比如:半星。而且要添加5个button、不断重复更改图片、对系统性能消耗可能并不是很好。3. 放置两张Imagview,一个底层、一个顶层,通过设置imageview的填充方式,以及甚至frame来原创 2017-07-25 23:11:29 · 1938 阅读 · 0 评论 -
iOS GCD之dispatch_group的使用(多个文件并发上传)
NSMutableArray *imageURLs= [NSMutableArray array];dispatch_group_t group = dispatch_group_create(); // 1for (UIImage *image in images) { dispatch_group_enter(group);转载 2017-07-27 09:55:54 · 2313 阅读 · 0 评论 -
基于IM实现直播礼物效果
由于项目直播还未上线,确保保密性,暂时只提供部分源码,只是简单技术交流,为大家做自己做直播刷礼物提供一个简单思路。首先,想要实现直播礼物效果,最好使用即时通讯,其他方法暂时没有想到,我们基于IM至少有两种方法来实现效果。 第一种:网易的IM提供发送文字,发送图片,发送文件功能·····如图: 我们可以在直播房间发送任何你想发送的东西,然后调用相关接口,实现接收,不过类似的这种东西需要归档和解档处原创 2016-07-27 12:27:38 · 11904 阅读 · 6 评论 -
iOS MJRefresh简单刷新
iOS MJRefreshd简单刷新 super.viewDidLoad() self.tableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: { self.incomeExpenseList.removeAll() sel原创 2017-02-21 15:14:12 · 611 阅读 · 0 评论 -
iOS 语音识别转文字
语音转成文字科大讯飞语音识别技术,支持英文,中文,方言等。识别效率十分迅速,而且准确率官网能够达到97%以上。 在使用过程中,也确实发现,可以商用,或者利用其API进行开发。使用场景,包含英语学习,单词朗读,语音评测等。本文介绍如何使用 语音转成文字 的功能Demo 地址:https://git.coding.net/Xoxo_x/IFlyDemo.git使用讯飞的SDK,需要进行注册,并添加项目原创 2017-02-22 23:48:33 · 4481 阅读 · 0 评论 -
iOS 多线程研究一:六种创建多线程的方法
本文介绍多种多线程方法:xoxo_x总结 本文总结的几种多线程创建方法均为异步线程,除了最后GCD的同步线程外。第一种:NSThread *thread = [[NSThread alloc]initWithBlock:^{ NSLog(@"线程1"); }]; [thread start]; NSLog(@"主线程");第二种:[NSThread detac原创 2017-02-27 02:59:21 · 4538 阅读 · 0 评论 -
淘宝app属于hybrid app吗?
作者:知乎用户 链接:https://www.zhihu.com/question/28469978/answer/58914393 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。是,淘宝天猫这样的超大型App,完全用Native是很难的,也是不现实的,业务逻辑太复杂,目前天猫是20% native +70 H5,search,detail,范儿,还有我所在的转载 2017-02-28 01:19:06 · 3002 阅读 · 0 评论 -
解析:图像技术在直播中怎么用?聊一聊美女主播背后的美颜技术
看到一篇文章:给了很大启发原文: https://www.yidianzixun.com/n/0EqVDsBT?utk=821p9863&appid=yidian&ver=4.3.9.3&f=ios在架构师沙龙上的演讲整理,本篇主要谈谈美颜技术在直播中的使用。雷锋网()已获授权。2016年作为视频直播元年,无论从资本层面不断高涨的估值,到平台主播各种天文数字的报酬,再到像“局座”这样的主流人士争相转载 2017-02-28 00:52:48 · 1289 阅读 · 0 评论 -
如何在最新的xcode中使用Swift2.3或者2.0版本
在 Building Settings中搜索 swift 将No 换成Yes 如下图:原创 2016-12-08 22:53:27 · 3679 阅读 · 0 评论 -
ios App实战流程
(待续) demo地址 http://download.csdn.net/detail/xoxo_x/9711895知识点:App开发的全部流程如何进行短信验证码登录 如何进行密码登录 Swift与OC进行互调的流程Swift的语法结构 使用代码和Storyboard进行交互 如何自定义导航栏 音频合成视频美颜数据库处理 视频播放器音频播放器直播技术图片处理常用工具原创 2016-12-15 10:35:17 · 843 阅读 · 0 评论 -
xcode真机调试10.2系统
iOS 10.2 Disk Imagehttp://download.csdn.net/detail/xeaje/9721183原创 2016-12-29 10:30:04 · 596 阅读 · 0 评论 -
备用
let orderJson = json[0] print(orderJson["id"]) let receivingSpaceJson = orderJson["receivingSpace"] let receiverJson = receivingSpaceJson["receiver"] let receiver = Rece原创 2016-12-31 11:58:59 · 430 阅读 · 0 评论 -
第三方库CoreActionSheetPicker的小bug
当数量为1时,添加下面代码 if (self.data.count == 1) { self.selectedIndex = 0; }- (void)notifyTarget:(id)target didSucceedWithAction:(SEL)successAction origin:(id)origin { NSLog(@"%@",self.d原创 2017-01-09 16:28:07 · 948 阅读 · 0 评论 -
GPUImageMovieWriter黑屏问题
使用GPUImage录制视频时第一帧会出现黑屏或者白屏,并且调用addAudioInputsAndOutputs也不好使此时需要修改GPUImageMovieWriter.m的源码,在其中添加以下代码**static BOOL allowWriteAudio = NO;(void)startRecording; { … allowWriteAudio = NO; }(void)proce原创 2017-05-26 14:03:21 · 1794 阅读 · 1 评论 -
iOS GPUImage研究序二:更简单GPUImage导入方式
本片介绍关于打包成静态库导入GPUImage:xoxo_x 著 像添加文件一样简单(包含真机和模拟器) 打包的文件为2017.3.4的 GPUImage静态库已打包好的libGPUImage.a: http://download.csdn.net/detail/xoxo_x/9770131已抽离的header文件: http://download.csdn.net/detail/xoxo_x原创 2017-03-04 11:43:23 · 4667 阅读 · 5 评论 -
iOS GPUImage研究五:短视频拍摄(滤镜、文件写入)
希望这个Demo,可以给大家在视频滤镜制作上带来一些灵感、避免重复造轮子。也希望大家转载的时候带上原文地址,算是对原创的鼓励。最下方有Demo地址 运行环境Xcode7.3.1这个Demo应该是对GPUImage的总结吧,包含了视频写入,滤镜信息读取。前面几篇文章也分别对GPUImage中常用的功能进行了分别介绍。虽说GPUImage是开源的,但对初学者来讲上手还是有一定难度的,希望可以帮助大家。原创 2017-04-16 21:42:17 · 6634 阅读 · 10 评论 -
iOS使用NSMutableAttributedString 实现富文本
富文本 阴影,,部分文本颜色,,,字体家族 NSString *text1 = self.model.message.text; NSString *nick = [NIMKitUtil showNick:self.model.message.from inMessage:self.model.message]; [_textLabel setT原创 2016-08-13 11:31:42 · 658 阅读 · 0 评论 -
iOS开发动画(Animation)总结
UIView的,翻转、旋转,偏移,翻页,缩放,取反的动画效果翻转的动画[objc] view plain copy 在CODE上查看代码片派生到我的代码片 //开始动画 [UIView beginAnimations:@”doflip” context:nil]; //设置时常 [UIView setAnimationDuration:1]; //设置动画淡入淡出转载 2016-08-17 11:25:42 · 382 阅读 · 0 评论 -
微信支付成功,如何刷新用户当前页面的余额
本项目中,使用微信支付,支付成功后,弹出提示框,并且目的是改变当前用户的余额。。。我们在互动直播项目中发现 ,然而事情并没有那么简单。代码如下: 我们知道,应该在appdelegate中调用微信支付代理,告知用户的充值结果是否正确。 为了确保安全,应使用服务器对用户的余额进行保存 我在这里为了传值 有设置了一个代理 如下:@protocol payIsOkDelegate- (vo原创 2016-08-29 09:54:37 · 5528 阅读 · 0 评论