- 博客(40)
- 收藏
- 关注
转载 iOS底层原理总结 - 探寻block的本质(二)
上一篇文章iOS底层原理总结 - 探寻block的本质(一)中已经介绍过block的底层本质实现以及了解了变量的捕获,本文继续探寻block的本质。block对对象变量的捕获block一般使用过程中都是对对象变量的捕获,那么对象变量的捕获同基本数据类型变量相同吗?查看一下代码思考:当在block中访问的为对象类型时,对象什么时候会销毁?typedef void (^Block)(void);in...
2018-06-04 09:45:50
442
转载 iOS底层原理总结 - 探寻block的本质(一)
面试题block的原理是怎样的?本质是什么?__block的作用是什么?有什么使用注意点?block的属性修饰词为什么是copy?使用block有哪些使用注意?block在修改NSMutableArray,需不需要添加__block?首先对block有一个基本的认识block本质上也是一个oc对象,他内部也有一个isa指针。block是封装了函数调用以及函数调用环境的OC对象。探寻block的本质...
2018-06-04 09:41:46
5599
转载 iOS面试珠玑
iOS基础类简述iOS中的内存管理方式iOS的内存管理用的是引用计数的方法,分为MRC(手动引用计数)和ARC(自动引用计数)。MRC:开发者手动地进行retain和release操作,对每个对象的retainCount进行+1,-1操作,当retainCount为0时,系统会自动释放对象内存。ARC:开发者通过声明对象的属性为strong,weak,retain,assign来管理对象的引用计数...
2018-06-02 20:42:14
471
原创 ios RunTime机制详解
一:基本概念Runtime基本是用C和汇编写的,可见苹果为了动态系统的高效而作出的努力。你可以在这里下到苹果维护的开源代码。苹果和GNU各自维护一个开源的runtime版本,这两个版本之间都在努力的保持一致。Objective-C 从三种不同的层级上与 Runtime 系统进行交互,分别是通过 Objective-C 源代码,通过 Foundation 框架的NSObject类定义的方法,通过对 ...
2018-06-02 20:34:04
8649
1
原创 iOS MVVM架构的介绍
iOS MVVM模式(Model-View-ViewModel): 1. Model层是少不了的了,我们得有东西充当DTO(数据传输对象),当然,用字典也是可以的,编程么,要灵活一些。Model层是比较薄的一层,如果学过Java的小伙伴的话,对JavaBean应该不陌生吧。 2. ViewModel层,就是View和Model层的粘合剂,他是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其...
2018-06-02 20:31:23
1424
原创 MVVM的使用与Controller瘦身实践
前言MVC是一个做iOS开发都知道的设计模式,也是Apple官方推荐的设计模式。实际上,Cocoa Touch就是按照MVC来设计的。这里,我们先不讲MVC是什么,我们先来谈谈软件设计的一些原则或者说理念。在开发App的时候,我们的基本目标有以下几点:可靠性 - App的功能能够正常使用健壮性 - 在用户非正常使用的时候,app也能够正常反应,不要崩溃效率性 - 启动时间,耗电,流量,界面反应速度...
2018-06-02 19:49:42
837
转载 最快让你上手ReactiveCocoa之进阶篇
前言由于时间的问题,暂且只更新这么多了,后续还会持续更新本文《最快让你上手ReactiveCocoa之进阶篇》,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MVVM+ReactiveCocoa实战开发。1.ReactiveCocoa常见操作方法介绍。1.1 ReactiveCocoa操作须知所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream...
2018-05-31 13:02:49
430
原创 ios 直播间点赞动画
直播间点赞动画#pragma mark - 点赞动画- (void)praiseAnimation { UIImageView *imageView = [[UIImageView alloc] init]; CGRect frame = self.view.frame; // 初始frame,即设置了动画的起点 imageView.frame =...
2018-02-26 09:26:51
1292
原创 ios自定义字体
提供字体文件路径,返回所需要字体: 复制代码-(UIFont*)customFontWithPath:(NSString*)path size:(CGFloat)size{ NSURL *fontUrl = [NSURL fileURLWithPath:path]; CGDataProviderRef fontDataProvider = CGDataProviderCreateWit...
2018-02-26 09:21:58
3156
原创 ios 开发中获取字符串中重复的字符的range
iOS 开发中经常会遇到处理字符串的问题,对于一个字符串经常会遇见里面包含重复的字符需要对重复的字符进行处理,下面的代码就是对重复字符进行处理的操作,具体代码如下所示:/** * 返回重复字符的location * * @param text 初始化的字符串 * @param findText 查找的字符 * * @return 返回重复字符的loc
2017-06-22 21:18:53
1503
转载 如何创建私有 CocoaPods 仓库
公共 CocoaPods打开隐藏目录,可以使用命令: //打开隐藏的命令:defaults write com.apple.finder AppleShowAllFiles -bool true//关闭隐藏的命令:defaults write com.apple.finder AppleShowAllFiles -bool false接着需要重启一下 Finder, 可以
2017-06-17 11:19:48
390
转载 mac系统用HomeBrew直接安装ruby
本文章为菲利克斯猫(Felix.mao) 原创,转载务必在明显处注明:原文链接:http://blog.youkuaiyun.com/maojudong/article/details/7920578使用brew安装ruby很方便,但缺点也是很明显的,不能实时进行版本的切换所以还是用 brew + rvm 或brew + rbenv比较好,以后文章会介绍前言:我们不去删
2017-06-17 11:18:21
9280
转载 iOS开发进阶 - 使用shell脚本自动打包上传到fir上
用fir.im测试已经好长时间了,感觉每次打包上传都很麻烦,想着是不是可以用脚本自动打包,在网上搜了一下确实有,下面总结一下如何使用脚本自动打包上传到fir.im,以及打包过程中遇到的问题和解决办法相关资料和下载首先是打包脚本的下载地址,这个是我找到的比较全的一个,里面有很多不同功能的shell脚本,亲测好用,传送门还有关于fir指令的一些介绍可以去这里查看,传送门
2017-06-17 11:15:47
2394
原创 iOS 当APP接收到推送消息时,对推送消息进行处理
结合最近做的项目来总结一下,在我们接收到推送通知后我们将要怎么处理这条推送消息,也为以后再做相关推送的时候能够更快处理。首先要说明两个概念:本地通知和远程推送。本地通知是由本地应用触发的,接收会比较及时。远程推送是通过苹果的APNs发送到应用客户端的。以下有处理推送的三种状态:一.APP没有被杀掉进程的时候,会根据是本地通知还是远程推送来调用不同的函数//本地通
2017-05-27 16:50:16
3599
原创 iOS 输入金钱数目的TextField
GitHub地址:https://github.com/wukaiqiang/KQWithdrawTextFieldDemo使用cocoapods导入:pod 'KQWithdrawTextField'-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
2017-05-18 20:36:37
1026
转载 iOS GitHub上常用第三方框架
转载自:https://github.com/Tim9Liu9/TimLiu-iOS目录UI下拉刷新模糊效果AutoLayout富文本图表表相关与Tabbar隐藏与显示HUD与Toast对话框其他UI动画侧滑与右滑返回手势gif动画其他动画网络相关网络连接图像获取网络聊天网络测试网页框架WebView与WKWebView
2017-04-19 15:39:11
10491
转载 iphone利用AudioQueue播放音频文件(mp3,aac,caf,wav等)
最近在做iphone上的流媒体播放,需要用到播放音频流,参考了好多博客、网站,最终算是把这个比较难弄的问题解决了。这篇文章是播放音频文件的,我会专门用一篇文章来介绍如何用AudioQueue来播放raw pcm data,相信这是大多数ios开发同胞需要的吧。在此分享出来,希望能帮助到真正需要的人,毕竟一个人的力量是有限的,还是要共同学习、共同进步。1.playAudio.
2017-03-10 13:34:14
784
原创 代码实现CollectionView的headerView的悬停,Group形式
代码实现CollectionView的headerView的悬停// 新建一个继承UICollectionViewFlowLayout的类,重写layoutAttributesForElementsInRect这个方法,初始化collectionView的时候,用此类进行初始化即可。- (instancetype)init{ self = [superinit];
2017-02-27 17:02:40
598
原创 AFNetworking原理及常用操作
AFN的六大模块NSURLConnection,主要对NSURLConnection进行了进一步的封装,包含以下核心的类:AFURLConnectionOperationAFHTTPRequestOperationManagerAFHTTPRequestOperationNSURLSession,主要对象NSURLSession对象进行了进一步的封装,包含以下核心的
2016-09-21 18:17:10
611
原创 iOS开发系列--地图与定位
概览现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。例如你到了一个陌生的地方想要查找附近的酒店、超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品。总之,目前地图和定位功能已经大量引入到应用开发中。今天就和大家一起看一下
2016-09-21 12:20:21
1026
原创 iOS之多线程的使用
多线程需要掌握的知识点2.png线程的注意点不要同时开太多线程(1~3条即可,不要超过5条)线程概念主线程:UI线程,显示、刷新UI界面,处理UI控件的事件子线程:后台线程,异步线程不要把耗时操作放在主线程中,容易造成线程阻塞,要放在子线程中执行
2016-09-20 13:28:22
762
原创 iOS相关支付,支付宝,微信,银联
支付宝支付https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.QzMnxo&treeId=59&articleId=103657&docType=11、SDK下载2、SDK导入注意事项:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7
2016-09-20 13:27:12
778
原创 iOS音乐播放器
这是一篇教学Blog. 重点不完全在播放器上, 目的是通过这个过程掌握以下知识点:单例block传值多线程代理传值通知观察者网络请求数据解析多控件布局开发模式和框架设计今天敲一个音乐播放器, 音乐源我就不共享了, 涉及到版权保护, 别问我的源是哪儿来的. 不告诉你们
2016-09-20 13:21:16
320
原创 排序算法大汇总
排序算法大汇总 排序算法是最基本最常用的算法,也是各大上市公司经常会被问道的面试知识点之一,不同的排序算法在不同的场景或应用中会有不同的表现,我们需要对各种排序算法熟练才能将它应用到实际应用中,才能更好的发挥他们的优势,那么今天我们来对各种算法进行一个简单的总结和分析。 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交
2016-09-20 13:20:26
400
转载 放肆地使用UIBezierPath和CAShapeLayer画各种图形
放肆地使用UIBezierPath和CAShapeLayer画各种图形CAShapeLayerUIBezierPatCAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可
2016-09-20 13:18:46
514
转载 Git远程操作详解
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。git clonegit remotegit fetchgit pullgit push本文针对初级用户,从最简单的讲起,但是需要读者对Git的基
2016-09-20 13:11:22
224
转载 UIBezierPath精讲
学习UIBezierPath画图笔者在写本篇文章之前,也没有系统学习过贝塞尔曲线,只是曾经某一次的需求需要使用到,才临时百度看了一看而且使用最基本的功能。现在总算有时间停下来好好研究研究这个神奇而伟大的贝塞尔先生!笔者在学习时,首先看了两遍UIBezierPath类头文件定义,熟悉了一下相关的属性和方法。支持原创,请阅读原文基础知识使用UIBezierPat
2016-09-20 13:08:45
430
转载 cocopods里的Podfile相关内容
经常使用CocoaPods来管理iOS项目中的第三方库,但是我们要使用CocoaPods来管理第三方库,前提是要写好Podfile文件,通过这个文件来配置第三方库与项目之间的依赖、版本等信息。但是,我相信很少有人完整地学习过Podfile的语法规则,包括笔者在写本篇文章之前。今天,请大家与笔者一起来完整地学习Podfile官方教程。之前一直想写来着,因为包括笔者在内并没有深入学习过
2016-09-20 13:07:06
870
原创 OC内存管理常见面试题整理
1:简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwrite,readonly,assign,retain,copy,nonatomic,atomic,strong,weak属性的作用?OC中内存管理机制应该就是引用计数机制,retainCount为0时释放该内存
2016-03-31 19:06:57
2613
原创 UIWebView详解
一、初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种:第一种:- (void)loadRequest:(NSURLRequest *)request;这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的
2016-03-30 09:36:20
275
原创 Apple Pay 详解
1 导入头文件导入需要的框架对应的头文件PassKit/PassKit.h 和AddressBook/AddressBook.h,并且遵循PKPaymentAuthorizationViewControllerDelegate#import#import@interfaceViewController ()PKPaymentAuthorizati
2016-03-29 17:53:58
548
原创 iOS地图
各种地图在这篇文章里, 你可以学习到:1.iOS系统地图2.百度地图的简单了解3.高德地图的简单了解4.谷歌地图的简单了解一.系统自带地图首先需要明白, 地图和定位是两个功能.定位: 通过GPS或者Wifi或者蜂窝数据定位到手机的具体物理位置, 返回值通常是一个地理坐标.地图: 和我们实际生活中的地图类似, 基本作用是展示
2016-03-29 17:53:23
375
转载 科大讯飞--让你的APP学会说学逗唱
科大讯飞--让你的APP学会说学逗唱####### 关键字: 讯飞 语音识别 语音合成 配置在本篇blog中, 您将学到:使用讯飞语音实现语音识别使用讯飞语音实现朗读文字了解他们的内部封装一.走近讯飞(iFly)语音技术实现了人机语音交互,使人与机器之间沟通变得像人与人沟通一样简单。语音技术主要包括语音合成和语音识别两项关键技术。让机器说
2016-03-29 17:52:47
1289
转载 无限轮播 实现原理
iOS开发UI篇—无限轮播(循环利用)一、无限轮播 1.简单说明 在开发中常需要对广告或者是一些图片进行自动的轮播,也就是所谓的无限滚动。 在开发的时候,我们通常的做法是使用一个UIScrollView,在UIScrollView上面添加多个imageView,然后设置imageView的图片,和scrollView的滚动范围。 以前的做法: 一
2016-03-29 17:52:02
2670
转载 GitHub Top 100 简介
主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况.若有任何疑问可通过微博@李锦发联系我项目名称项目信息AFNetworking作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便
2016-03-29 17:51:34
420
转载 SDWebImage实现原理
这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。SDWebImage 支持异步的图片下载+缓存,提供了 UIImageView+WebCacha 的 category,方便使用。纪录一下 SDWebImage 加载图片的流程。入口 setImageWithURL:placeholder
2016-03-29 17:51:02
408
转载 基于AFNetworking3.0网络封装
1.AFURLConnectionOperation可以说是AFN最基础的类。继承自NSOperation类,将网络请求依附到一个operation上。从而让我们能够有效的控制并观察一个网络请求的创建、进行、取消、完成、暂停恢复、异常等问题及状态。 2.AFHTTPRequestOperation HTTP或HTTPS协议请求的AFURLConnectionOperation的子类。它封装的可
2016-03-29 17:50:18
461
原创 极光推送
本地推送 —>闹钟远程推送发送消息的QQ —> 腾讯 —>苹果(APNS) —>接收信息的QQ极光推送步骤1.申请appids2.填写Name以及 将工程中的bundleID 粘贴过来选择Push 下一步创建推送服务证书找到自己的appid 创建推送服务证书需要申请一个ce
2016-03-29 17:49:04
518
转载 正则表达式在iOS中的运用
一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。二、正则表达式的语法看一个过滤纯数字的例子?1234
2016-03-29 17:46:20
310
转载 iOS项目上传到AppStore步骤流程
1.登录developer.apple.com2.点击member center后 进下图3.点击certificates Identifiers进下图4.点击Certificates进下图,首先创建App IDs5.其次创建相应的证书 Development是开发环境下的证书, Production是生产环境
2016-03-29 17:44:46
324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人