自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 iOS底层原理总结 - 探寻block的本质(二)

上一篇文章iOS底层原理总结 - 探寻block的本质(一)中已经介绍过block的底层本质实现以及了解了变量的捕获,本文继续探寻block的本质。block对对象变量的捕获block一般使用过程中都是对对象变量的捕获,那么对象变量的捕获同基本数据类型变量相同吗?查看一下代码思考:当在block中访问的为对象类型时,对象什么时候会销毁?typedef void (^Block)(void);in...

2018-06-04 09:45:50 383

转载 iOS底层原理总结 - 探寻block的本质(一)

面试题block的原理是怎样的?本质是什么?__block的作用是什么?有什么使用注意点?block的属性修饰词为什么是copy?使用block有哪些使用注意?block在修改NSMutableArray,需不需要添加__block?首先对block有一个基本的认识block本质上也是一个oc对象,他内部也有一个isa指针。block是封装了函数调用以及函数调用环境的OC对象。探寻block的本质...

2018-06-04 09:41:46 5526

转载 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 421

原创 ios RunTime机制详解

一:基本概念Runtime基本是用C和汇编写的,可见苹果为了动态系统的高效而作出的努力。你可以在这里下到苹果维护的开源代码。苹果和GNU各自维护一个开源的runtime版本,这两个版本之间都在努力的保持一致。Objective-C 从三种不同的层级上与 Runtime 系统进行交互,分别是通过 Objective-C 源代码,通过 Foundation 框架的NSObject类定义的方法,通过对 ...

2018-06-02 20:34:04 8557 1

原创 iOS MVVM架构的介绍

iOS MVVM模式(Model-View-ViewModel): 1. Model层是少不了的了,我们得有东西充当DTO(数据传输对象),当然,用字典也是可以的,编程么,要灵活一些。Model层是比较薄的一层,如果学过Java的小伙伴的话,对JavaBean应该不陌生吧。 2. ViewModel层,就是View和Model层的粘合剂,他是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其...

2018-06-02 20:31:23 1372

原创 MVVM的使用与Controller瘦身实践

前言MVC是一个做iOS开发都知道的设计模式,也是Apple官方推荐的设计模式。实际上,Cocoa Touch就是按照MVC来设计的。这里,我们先不讲MVC是什么,我们先来谈谈软件设计的一些原则或者说理念。在开发App的时候,我们的基本目标有以下几点:可靠性 - App的功能能够正常使用健壮性 - 在用户非正常使用的时候,app也能够正常反应,不要崩溃效率性 - 启动时间,耗电,流量,界面反应速度...

2018-06-02 19:49:42 749

转载 最快让你上手ReactiveCocoa之进阶篇

前言由于时间的问题,暂且只更新这么多了,后续还会持续更新本文《最快让你上手ReactiveCocoa之进阶篇》,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MVVM+ReactiveCocoa实战开发。1.ReactiveCocoa常见操作方法介绍。1.1 ReactiveCocoa操作须知所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream...

2018-05-31 13:02:49 388

原创 ios 直播间点赞动画

直播间点赞动画#pragma mark - 点赞动画- (void)praiseAnimation {      UIImageView *imageView = [[UIImageView alloc] init];      CGRect frame = self.view.frame; // 初始frame,即设置了动画的起点      imageView.frame =...

2018-02-26 09:26:51 1194

原创 ios自定义字体

提供字体文件路径,返回所需要字体: 复制代码-(UIFont*)customFontWithPath:(NSString*)path size:(CGFloat)size{    NSURL *fontUrl = [NSURL fileURLWithPath:path];    CGDataProviderRef fontDataProvider = CGDataProviderCreateWit...

2018-02-26 09:21:58 3057

原创 ios 开发中获取字符串中重复的字符的range

iOS 开发中经常会遇到处理字符串的问题,对于一个字符串经常会遇见里面包含重复的字符需要对重复的字符进行处理,下面的代码就是对重复字符进行处理的操作,具体代码如下所示:/** *  返回重复字符的location * *  @param text     初始化的字符串 *  @param findText 查找的字符 * *  @return 返回重复字符的loc

2017-06-22 21:18:53 1387

转载 如何创建私有 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 341

转载 mac系统用HomeBrew直接安装ruby

本文章为菲利克斯猫(Felix.mao) 原创,转载务必在明显处注明:原文链接:http://blog.csdn.net/maojudong/article/details/7920578使用brew安装ruby很方便,但缺点也是很明显的,不能实时进行版本的切换所以还是用 brew + rvm 或brew + rbenv比较好,以后文章会介绍前言:我们不去删

2017-06-17 11:18:21 9047

转载 iOS开发进阶 - 使用shell脚本自动打包上传到fir上

用fir.im测试已经好长时间了,感觉每次打包上传都很麻烦,想着是不是可以用脚本自动打包,在网上搜了一下确实有,下面总结一下如何使用脚本自动打包上传到fir.im,以及打包过程中遇到的问题和解决办法相关资料和下载首先是打包脚本的下载地址,这个是我找到的比较全的一个,里面有很多不同功能的shell脚本,亲测好用,传送门还有关于fir指令的一些介绍可以去这里查看,传送门

2017-06-17 11:15:47 2306 1

原创 iOS 当APP接收到推送消息时,对推送消息进行处理

结合最近做的项目来总结一下,在我们接收到推送通知后我们将要怎么处理这条推送消息,也为以后再做相关推送的时候能够更快处理。首先要说明两个概念:本地通知和远程推送。本地通知是由本地应用触发的,接收会比较及时。远程推送是通过苹果的APNs发送到应用客户端的。以下有处理推送的三种状态:一.APP没有被杀掉进程的时候,会根据是本地通知还是远程推送来调用不同的函数//本地通

2017-05-27 16:50:16 3476

原创 iOS 输入金钱数目的TextField

GitHub地址:https://github.com/wukaiqiang/KQWithdrawTextFieldDemo使用cocoapods导入:pod 'KQWithdrawTextField'-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range

2017-05-18 20:36:37 969

转载 iOS GitHub上常用第三方框架

转载自:https://github.com/Tim9Liu9/TimLiu-iOS目录UI下拉刷新模糊效果AutoLayout富文本图表表相关与Tabbar隐藏与显示HUD与Toast对话框其他UI动画侧滑与右滑返回手势gif动画其他动画网络相关网络连接图像获取网络聊天网络测试网页框架WebView与WKWebView

2017-04-19 15:39:11 10131

转载 iphone利用AudioQueue播放音频文件(mp3,aac,caf,wav等)

最近在做iphone上的流媒体播放,需要用到播放音频流,参考了好多博客、网站,最终算是把这个比较难弄的问题解决了。这篇文章是播放音频文件的,我会专门用一篇文章来介绍如何用AudioQueue来播放raw pcm data,相信这是大多数ios开发同胞需要的吧。在此分享出来,希望能帮助到真正需要的人,毕竟一个人的力量是有限的,还是要共同学习、共同进步。1.playAudio.

2017-03-10 13:34:14 717

原创 代码实现CollectionView的headerView的悬停,Group形式

代码实现CollectionView的headerView的悬停// 新建一个继承UICollectionViewFlowLayout的类,重写layoutAttributesForElementsInRect这个方法,初始化collectionView的时候,用此类进行初始化即可。- (instancetype)init{    self = [superinit];

2017-02-27 17:02:40 570

原创 AFNetworking原理及常用操作

AFN的六大模块NSURLConnection,主要对NSURLConnection进行了进一步的封装,包含以下核心的类:AFURLConnectionOperationAFHTTPRequestOperationManagerAFHTTPRequestOperationNSURLSession,主要对象NSURLSession对象进行了进一步的封装,包含以下核心的

2016-09-21 18:17:10 572

原创 iOS开发系列--地图与定位

概览现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。例如你到了一个陌生的地方想要查找附近的酒店、超市等就可以打开软件搜索周边;类似的,还有很多团购软件可以根据你所在的位置自动为你推荐某些商品。总之,目前地图和定位功能已经大量引入到应用开发中。今天就和大家一起看一下

2016-09-21 12:20:21 950

原创 iOS之多线程的使用

多线程需要掌握的知识点2.png线程的注意点不要同时开太多线程(1~3条即可,不要超过5条)线程概念主线程:UI线程,显示、刷新UI界面,处理UI控件的事件子线程:后台线程,异步线程不要把耗时操作放在主线程中,容易造成线程阻塞,要放在子线程中执行

2016-09-20 13:28:22 719

原创 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 754

原创 iOS音乐播放器

这是一篇教学Blog. 重点不完全在播放器上, 目的是通过这个过程掌握以下知识点:单例block传值多线程代理传值通知观察者网络请求数据解析多控件布局开发模式和框架设计今天敲一个音乐播放器, 音乐源我就不共享了, 涉及到版权保护, 别问我的源是哪儿来的. 不告诉你们

2016-09-20 13:21:16 295

原创 排序算法大汇总

排序算法大汇总       排序算法是最基本最常用的算法,也是各大上市公司经常会被问道的面试知识点之一,不同的排序算法在不同的场景或应用中会有不同的表现,我们需要对各种排序算法熟练才能将它应用到实际应用中,才能更好的发挥他们的优势,那么今天我们来对各种算法进行一个简单的总结和分析。        冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交

2016-09-20 13:20:26 378

转载 放肆地使用UIBezierPath和CAShapeLayer画各种图形

放肆地使用UIBezierPath和CAShapeLayer画各种图形CAShapeLayerUIBezierPatCAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可

2016-09-20 13:18:46 495

转载 Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。git clonegit remotegit fetchgit pullgit push本文针对初级用户,从最简单的讲起,但是需要读者对Git的基

2016-09-20 13:11:22 201

转载 UIBezierPath精讲

学习UIBezierPath画图笔者在写本篇文章之前,也没有系统学习过贝塞尔曲线,只是曾经某一次的需求需要使用到,才临时百度看了一看而且使用最基本的功能。现在总算有时间停下来好好研究研究这个神奇而伟大的贝塞尔先生!笔者在学习时,首先看了两遍UIBezierPath类头文件定义,熟悉了一下相关的属性和方法。支持原创,请阅读原文基础知识使用UIBezierPat

2016-09-20 13:08:45 323

转载 cocopods里的Podfile相关内容

经常使用CocoaPods来管理iOS项目中的第三方库,但是我们要使用CocoaPods来管理第三方库,前提是要写好Podfile文件,通过这个文件来配置第三方库与项目之间的依赖、版本等信息。但是,我相信很少有人完整地学习过Podfile的语法规则,包括笔者在写本篇文章之前。今天,请大家与笔者一起来完整地学习Podfile官方教程。之前一直想写来着,因为包括笔者在内并没有深入学习过

2016-09-20 13:07:06 842

原创 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 2460

原创 UIWebView详解

一、初始化与三种加载方式     UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种:第一种:- (void)loadRequest:(NSURLRequest *)request;这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的

2016-03-30 09:36:20 238

原创 Apple Pay 详解

1 导入头文件导入需要的框架对应的头文件PassKit/PassKit.h 和AddressBook/AddressBook.h,并且遵循PKPaymentAuthorizationViewControllerDelegate#import#import@interfaceViewController ()PKPaymentAuthorizati

2016-03-29 17:53:58 457

原创 iOS地图

各种地图在这篇文章里, 你可以学习到:1.iOS系统地图2.百度地图的简单了解3.高德地图的简单了解4.谷歌地图的简单了解一.系统自带地图首先需要明白, 地图和定位是两个功能.定位: 通过GPS或者Wifi或者蜂窝数据定位到手机的具体物理位置, 返回值通常是一个地理坐标.地图: 和我们实际生活中的地图类似, 基本作用是展示

2016-03-29 17:53:23 324

转载 科大讯飞--让你的APP学会说学逗唱

科大讯飞--让你的APP学会说学逗唱####### 关键字: 讯飞 语音识别 语音合成 配置在本篇blog中, 您将学到:使用讯飞语音实现语音识别使用讯飞语音实现朗读文字了解他们的内部封装一.走近讯飞(iFly)语音技术实现了人机语音交互,使人与机器之间沟通变得像人与人沟通一样简单。语音技术主要包括语音合成和语音识别两项关键技术。让机器说

2016-03-29 17:52:47 1189

转载 无限轮播 实现原理

iOS开发UI篇—无限轮播(循环利用)一、无限轮播 1.简单说明  在开发中常需要对广告或者是一些图片进行自动的轮播,也就是所谓的无限滚动。  在开发的时候,我们通常的做法是使用一个UIScrollView,在UIScrollView上面添加多个imageView,然后设置imageView的图片,和scrollView的滚动范围。  以前的做法:    一

2016-03-29 17:52:02 2600

转载 GitHub Top 100 简介

主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况.若有任何疑问可通过微博@李锦发联系我项目名称项目信息AFNetworking作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便

2016-03-29 17:51:34 373

转载 SDWebImage实现原理

这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。SDWebImage 支持异步的图片下载+缓存,提供了 UIImageView+WebCacha 的 category,方便使用。纪录一下 SDWebImage 加载图片的流程。入口 setImageWithURL:placeholder

2016-03-29 17:51:02 388

转载 基于AFNetworking3.0网络封装

1.AFURLConnectionOperation可以说是AFN最基础的类。继承自NSOperation类,将网络请求依附到一个operation上。从而让我们能够有效的控制并观察一个网络请求的创建、进行、取消、完成、暂停恢复、异常等问题及状态。 2.AFHTTPRequestOperation HTTP或HTTPS协议请求的AFURLConnectionOperation的子类。它封装的可

2016-03-29 17:50:18 436

原创 极光推送

本地推送 —>闹钟远程推送发送消息的QQ —> 腾讯 —>苹果(APNS) —>接收信息的QQ极光推送步骤1.申请appids2.填写Name以及 将工程中的bundleID  粘贴过来选择Push  下一步创建推送服务证书找到自己的appid  创建推送服务证书需要申请一个ce

2016-03-29 17:49:04 485

转载 正则表达式在iOS中的运用

一、什么是正则表达式      正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。二、正则表达式的语法看一个过滤纯数字的例子?1234

2016-03-29 17:46:20 290

转载 iOS项目上传到AppStore步骤流程

1.登录developer.apple.com2.点击member center后 进下图3.点击certificates Identifiers进下图4.点击Certificates进下图,首先创建App IDs5.其次创建相应的证书 Development是开发环境下的证书, Production是生产环境

2016-03-29 17:44:46 297

空空如也

空空如也

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

TA关注的人

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