<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sifenkesi1的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sifenkesi1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sifenkesi1]]></copyright><item><title><![CDATA[iOS学习笔记 日志重定向]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621928</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621928</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:09:57 +0800</pubDate><description><![CDATA[一、日志重定向
我们在iOS开发过程中，我们时常会使用NSLog打印到控制台的日志信息进行代码调试，但这样调试的前提是连接上Xcode。
如果进行真机调试但同时又不能连接Xcode的时候，就不能直接在xcode的控制台查看输出日志了，但是程序还是会执行那些Log的，如果要查看这些日志，我们就需要把输出日志信息保存到文件中，然后进行查看。
标准NSLog的打印默认是往标准错误(stderr)进]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 ReactiveCocoa入门]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621920</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621920</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:09:10 +0800</pubDate><description><![CDATA[一、响应式编程范式FRP
FRP，全称为Functional Reactive Programming，是一种响应变化的编程范式，最近几年比较火，大概的理解就像这样：






当a的值或者b的值发生变化时，c的值会自动响应a的值或b的值变化的信号，自动更正自己的值，类似这种编程思想就称为FRP。
FRP提供了一种信号机制来实现这样的效果，通过信号来记录值的变化。信号可以被叠加]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 MJExtension使用]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621906</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621906</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:08:00 +0800</pubDate><description><![CDATA[一、MJExtension第三方框架
我们在iOS开发过程中，我们常常需要将字典数据(也就是JSON数据)与Model模型之间的转化，例如网络请求返回的微博数据、等等，如果我们自己全部手动去创建模型并赋值，都是一些毫无技术含量的代码，费时费力，而且还可能会赋值出错，让我们很头疼。
MJExtension框架就是为了解决这个问题而设计得第三方开源库。这个开源库是之前传智博客的讲师李明杰老师写的，]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 时间和日期计算]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621896</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621896</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:07:00 +0800</pubDate><description><![CDATA[一、时间和日期计算
我们在应用开发中，时常需要和时间打交道，比如获取当前时间，获取两个时间点相隔的时间等等，在iOS开发中与时间相关的类有如下几个：


NSDate：表示一个绝对的时间点NSTimeZone：时区信息NSLocale：本地化信息NSDateComponents：一个封装了具体年月日、时秒分、周、季度等的类NSCalendar：日历类，它提供了大部分的日期计算接口NSDat]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 Masonry自动布局]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621888</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621888</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:05:36 +0800</pubDate><description><![CDATA[一、Masonry介绍
之前我们在屏幕适配的章节中学习过AutoLayout的使用，但那都是在可视化界面上进行添加约束完成的，我们很多时候都需要在代码中使用AutoLayout约束，苹果也为我们提供了实现，使用NSLayoutConstraint类表示约束，但使用起来比较复杂，代码量比较大，例如创建一个约束的方法：
+ (id)constraintWithItem:(id)view1 /* 一]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 社交分享]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621880</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621880</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:04:30 +0800</pubDate><description><![CDATA[一、社交分享
现在很多应用都内置“社交分享”功能，可以将看到的新闻、博客、广告等内容分享到微博、微信、QQ、人人网等，其实从iOS6.0开始苹果官方就内置了Social.framework专门来实现社交分享功能，利用这个框架开发者只需要几句代码就可以实现内容分享。
Social框架使用步骤：


导入Social.framework框架，添加头文件
#import 
创建分享内容编辑]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 加速计和陀螺仪]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621873</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621873</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:03:31 +0800</pubDate><description><![CDATA[一、CoreMotion框架介绍
我们知道有一些iOS的应用，会有一些特殊的要求，比如：


电子罗盘指南针之类的应用：让我们知道方向。运动类型软件：让我们知道我们跑步多少公里。社交软件中的摇一摇功能。游戏中扮演角色类中根据设备的晃动等进行操作。

其实，他们多半是使用了iOS中的一个核心运动框架CoreMotion.framework


使用iOS提供给我们的CoreMoti]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 UICollectionView入门]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621869</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621869</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:02:08 +0800</pubDate><description><![CDATA[一、UICollectionView介绍
UICollectionView和UICollectionViewController类是iOS6新引进的API，用于展示集合视图，布局更加灵活，可实现多列布局，用法类似于UITableView和UITableViewController类，但也有所不同。
UICollectionView可以实现如下效果，也是一个常用的控件：





二]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 iCloud入门]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621865</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621865</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 13:00:47 +0800</pubDate><description><![CDATA[一、iCloud云服务
iCloud是苹果提供的云端服务，用户可以将通讯录、备忘录、邮件、照片、音乐、视频等备份到云服务器并在各个苹果设备间直接进行共享而无需关心数据同步问题，甚至即使你的设备丢失后在一台新的设备上也可以通过Apple ID登录同步。
苹果已经将云端存储功能开放给开发者，可以存储两类数据：


key-value data：
分享小量的非关键配置数据到应用的多个实例，使]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 从图册获取图片和视频]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621850</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621850</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:59:11 +0800</pubDate><description><![CDATA[一、从图册中获取本地图片和视频
从图册中获取文件，我们使用的是UIImagePickerController，这个类我们在之前的摄像头中使用过 这里我们使用的是它的另外一个功能，那就是从图册中获取图片和视频
基本步骤：


创建UIImagePickerController对象，并设置代理设置拾取源为图册，设置可编辑属性如果只是获取图片，就设置图片的媒体类型，如果只是获取视频，就设置视频]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 系统服务(三)蓝牙]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621848</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621848</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:57:33 +0800</pubDate><description><![CDATA[一、蓝牙
随着蓝牙低功耗技术BLE（Bluetooth Low Energy）的发展，蓝牙技术正在一步步成熟，如今的大部分移动设备都配备有蓝牙4.0，相比之前的蓝牙技术耗电量大大降低。
在iOS中进行蓝牙传输常用的框架有如下几种：


GameKit.framework：
iOS7之前的蓝牙框架，只可用于同应用之间的蓝牙传输。MultipeerConnectivity.framewor]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 系统服务(二)通讯录]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621837</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621837</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:56:02 +0800</pubDate><description><![CDATA[一、通讯录
iOS中的通讯录是存储在数据库中的，由于iOS的权限设计，开发人员是不允许直接访问通讯录数据库的，实现通讯录操作需要使用到AddressBook.framework框架。
AddressBook.framework框架：


可以从底层去操作通讯录的所有信息，做到精确控制是基于C语言编写的，无法使用ARC管理内存，需要开发者手动管理内存需要自构UI界面

iOS还提供了另]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 系统服务(一)短信和邮件]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621783</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621783</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:45:46 +0800</pubDate><description><![CDATA[一、系统应用
在开发某些应用时，我们可能希望能够调用iOS系统内置的电话、短信、邮件、浏览器应用，或者直接调用安装的第三方应用，这个要怎么实现呢？
这里统一使用UIApplication的一个对象方法来实现：
//打开不同的系统应用
- (void)openUrl:(NSURL *)url;
那怎么区分我是要打电话还是发短信等等呢？
之前我们学习网络的时候，是不是URL最前面使用的是ht]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 摄像头]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621771</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621771</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:43:31 +0800</pubDate><description><![CDATA[一、摄像头
在iOS中，手机摄像头的使用有以下两种方法：


UIImagePickerController拍照和视频录制

优点：使用方便，功能强大缺点：高度封装性，无法实现一些自定义工作
AVFoundation框架实现

优点：灵活性强，提供了很多现成的输入设备和输出设备，还有很多底层的内容可以供开发者使用缺点：需要和底层打交道，学习难度大，使用复杂


我们平常使用]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 视频播放]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621764</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621764</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:40:59 +0800</pubDate><description><![CDATA[一、视频
在iOS中播放视频可以使用两个框架来实现：


MediaPlayer框架的MPMoviePlayerController和MPMoviePlayerViewControllerAVFoundation框架中的AVPlayerAVKit框架的AVPlayerViewController【iOS8之后才有】

但在近两年的WWDC上，MediaPlayer框架被iOS9标记为d]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 录音和网络流媒体]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621760</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621760</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:39:09 +0800</pubDate><description><![CDATA[一、录音
AVFoundation框架还有一个AVAudioRecorder类专门处理录音操作，它同样支持多种音频格式。
先来了解下AVAudioRecorder的常用属性：
@property (readonly, getter=isRecording) BOOL recording;//是否正在录音
@property (readonly) NSDictionaryNSString *,]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 不断进化的屏幕适配]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621745</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621745</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:37:39 +0800</pubDate><description><![CDATA[一、屏幕适配
iOS的屏幕适配可以分为3大块，代表着不同时期的屏幕适配主流：


AutoResizing：
在iOS6之前，完全能够胜任，因为当时苹果只有3.5寸屏，加上比较少的支持横屏，它有非常大的局限性：只能相对于父控件布局AutoLayout：
在iOS6之后，苹果多了几个尺寸屏幕，AutoResizing已经无能为力了，这时候苹果推出了AutoLayout，功能十分强大，可以]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 音效与音乐]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621730</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621730</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:36:14 +0800</pubDate><description><![CDATA[一、音频
在iOS中，音频播放从形式上可以分为音效播放和音乐播放。


音效：

主要指一些短音频的播放，这类音频一般不需要进行进度、循环等控制。在iOS中，音效我们是使用AudioToolbox.framework框架实现。
音乐：

主要指一些较长的音频，通常需要对播放进行精确控制。在iOS中，音乐我们是使用AVFoundation.framework框架实现。


]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 推送通知]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621716</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621716</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:35:08 +0800</pubDate><description><![CDATA[一、推送通知
推送通知就是向用户推送一条信息来通知用户某件事件，可以在应用退到后台后，或者关闭后，能够通过推送一条消息通知用户某件事情，比如版本更新等等。
推送通知的常用应用场景：


一些任务管理APP，会到任务时间即将到达时，通知你该做任务了。健身APP定时提醒你应该健身了。买过电影票，提前半个小时通知你，电影即将开场。当你QQ或微信收到信息时，即使退到后台，也可以收到信息通知你。电]]></description><category></category></item><item><title><![CDATA[iOS学习笔记 推送证书与秘钥申请]]></title><link>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621697</link><guid>https://blog.youkuaiyun.com/sifenkesi1/article/details/52621697</guid><author>sifenkesi1</author><pubDate>Thu, 22 Sep 2016 12:33:41 +0800</pubDate><description><![CDATA[一、iOS证书
iOS常用的证书包括开发证书和发布证书，无论是真机调试还是最终发布应用到App Store这两个证书都是必须的，它是iOS开发的基本证书。Xcode7以后真机调试就不需要开发证书，真是开发者的福音啊！我再也不用为没有开发者账号而不能真机调试而担心了。


开发证书：
开发证书又分为普通开发证书和推送证书，如果仅仅是一般的应用则前者即可满足，但是如果开发推送应用则必须使用推]]></description><category></category></item></channel></rss>