- 博客(54)
- 资源 (1)
- 收藏
- 关注
转载 iOS学习笔记 日志重定向
一、日志重定向我们在iOS开发过程中,我们时常会使用NSLog打印到控制台的日志信息进行代码调试,但这样调试的前提是连接上Xcode。如果进行真机调试但同时又不能连接Xcode的时候,就不能直接在xcode的控制台查看输出日志了,但是程序还是会执行那些Log的,如果要查看这些日志,我们就需要把输出日志信息保存到文件中,然后进行查看。标准NSLog的打印默认是往标准错误(stderr)进
2016-09-22 13:09:57 315
转载 iOS学习笔记 ReactiveCocoa入门
一、响应式编程范式FRPFRP,全称为Functional Reactive Programming,是一种响应变化的编程范式,最近几年比较火,大概的理解就像这样:当a的值或者b的值发生变化时,c的值会自动响应a的值或b的值变化的信号,自动更正自己的值,类似这种编程思想就称为FRP。FRP提供了一种信号机制来实现这样的效果,通过信号来记录值的变化。信号可以被叠加
2016-09-22 13:09:10 390
转载 iOS学习笔记 MJExtension使用
一、MJExtension第三方框架我们在iOS开发过程中,我们常常需要将字典数据(也就是JSON数据)与Model模型之间的转化,例如网络请求返回的微博数据、等等,如果我们自己全部手动去创建模型并赋值,都是一些毫无技术含量的代码,费时费力,而且还可能会赋值出错,让我们很头疼。MJExtension框架就是为了解决这个问题而设计得第三方开源库。这个开源库是之前传智博客的讲师李明杰老师写的,
2016-09-22 13:08:00 415
转载 iOS学习笔记 时间和日期计算
一、时间和日期计算我们在应用开发中,时常需要和时间打交道,比如获取当前时间,获取两个时间点相隔的时间等等,在iOS开发中与时间相关的类有如下几个:NSDate:表示一个绝对的时间点NSTimeZone:时区信息NSLocale:本地化信息NSDateComponents:一个封装了具体年月日、时秒分、周、季度等的类NSCalendar:日历类,它提供了大部分的日期计算接口NSDat
2016-09-22 13:07:00 388
转载 iOS学习笔记 Masonry自动布局
一、Masonry介绍之前我们在屏幕适配的章节中学习过AutoLayout的使用,但那都是在可视化界面上进行添加约束完成的,我们很多时候都需要在代码中使用AutoLayout约束,苹果也为我们提供了实现,使用NSLayoutConstraint类表示约束,但使用起来比较复杂,代码量比较大,例如创建一个约束的方法:+ (id)constraintWithItem:(id)view1 /* 一
2016-09-22 13:05:36 739
转载 iOS学习笔记 社交分享
一、社交分享现在很多应用都内置“社交分享”功能,可以将看到的新闻、博客、广告等内容分享到微博、微信、QQ、人人网等,其实从iOS6.0开始苹果官方就内置了Social.framework专门来实现社交分享功能,利用这个框架开发者只需要几句代码就可以实现内容分享。Social框架使用步骤:导入Social.framework框架,添加头文件#import 创建分享内容编辑
2016-09-22 13:04:30 269
转载 iOS学习笔记 加速计和陀螺仪
一、CoreMotion框架介绍我们知道有一些iOS的应用,会有一些特殊的要求,比如:电子罗盘指南针之类的应用:让我们知道方向。运动类型软件:让我们知道我们跑步多少公里。社交软件中的摇一摇功能。游戏中扮演角色类中根据设备的晃动等进行操作。其实,他们多半是使用了iOS中的一个核心运动框架CoreMotion.framework使用iOS提供给我们的CoreMoti
2016-09-22 13:03:31 2575
转载 iOS学习笔记 UICollectionView入门
一、UICollectionView介绍UICollectionView和UICollectionViewController类是iOS6新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView和UITableViewController类,但也有所不同。UICollectionView可以实现如下效果,也是一个常用的控件:二
2016-09-22 13:02:08 375
转载 iOS学习笔记 iCloud入门
一、iCloud云服务iCloud是苹果提供的云端服务,用户可以将通讯录、备忘录、邮件、照片、音乐、视频等备份到云服务器并在各个苹果设备间直接进行共享而无需关心数据同步问题,甚至即使你的设备丢失后在一台新的设备上也可以通过Apple ID登录同步。苹果已经将云端存储功能开放给开发者,可以存储两类数据:key-value data:分享小量的非关键配置数据到应用的多个实例,使
2016-09-22 13:00:47 718
转载 iOS学习笔记 从图册获取图片和视频
一、从图册中获取本地图片和视频从图册中获取文件,我们使用的是UIImagePickerController,这个类我们在之前的摄像头中使用过 这里我们使用的是它的另外一个功能,那就是从图册中获取图片和视频基本步骤:创建UIImagePickerController对象,并设置代理设置拾取源为图册,设置可编辑属性如果只是获取图片,就设置图片的媒体类型,如果只是获取视频,就设置视频
2016-09-22 12:59:11 432
转载 iOS学习笔记 系统服务(三)蓝牙
一、蓝牙随着蓝牙低功耗技术BLE(Bluetooth Low Energy)的发展,蓝牙技术正在一步步成熟,如今的大部分移动设备都配备有蓝牙4.0,相比之前的蓝牙技术耗电量大大降低。在iOS中进行蓝牙传输常用的框架有如下几种:GameKit.framework:iOS7之前的蓝牙框架,只可用于同应用之间的蓝牙传输。MultipeerConnectivity.framewor
2016-09-22 12:57:33 603
转载 iOS学习笔记 系统服务(二)通讯录
一、通讯录iOS中的通讯录是存储在数据库中的,由于iOS的权限设计,开发人员是不允许直接访问通讯录数据库的,实现通讯录操作需要使用到AddressBook.framework框架。AddressBook.framework框架:可以从底层去操作通讯录的所有信息,做到精确控制是基于C语言编写的,无法使用ARC管理内存,需要开发者手动管理内存需要自构UI界面iOS还提供了另
2016-09-22 12:56:02 331
转载 iOS学习笔记 系统服务(一)短信和邮件
一、系统应用在开发某些应用时,我们可能希望能够调用iOS系统内置的电话、短信、邮件、浏览器应用,或者直接调用安装的第三方应用,这个要怎么实现呢?这里统一使用UIApplication的一个对象方法来实现://打开不同的系统应用- (void)openUrl:(NSURL *)url;那怎么区分我是要打电话还是发短信等等呢?之前我们学习网络的时候,是不是URL最前面使用的是ht
2016-09-22 12:45:46 327
转载 iOS学习笔记 摄像头
一、摄像头在iOS中,手机摄像头的使用有以下两种方法:UIImagePickerController拍照和视频录制优点:使用方便,功能强大缺点:高度封装性,无法实现一些自定义工作AVFoundation框架实现优点:灵活性强,提供了很多现成的输入设备和输出设备,还有很多底层的内容可以供开发者使用缺点:需要和底层打交道,学习难度大,使用复杂我们平常使用
2016-09-22 12:43:31 356
转载 iOS学习笔记 视频播放
一、视频在iOS中播放视频可以使用两个框架来实现:MediaPlayer框架的MPMoviePlayerController和MPMoviePlayerViewControllerAVFoundation框架中的AVPlayerAVKit框架的AVPlayerViewController【iOS8之后才有】但在近两年的WWDC上,MediaPlayer框架被iOS9标记为d
2016-09-22 12:40:59 547
转载 iOS学习笔记 录音和网络流媒体
一、录音AVFoundation框架还有一个AVAudioRecorder类专门处理录音操作,它同样支持多种音频格式。先来了解下AVAudioRecorder的常用属性:@property (readonly, getter=isRecording) BOOL recording;//是否正在录音@property (readonly) NSDictionaryNSString *,
2016-09-22 12:39:09 312
转载 iOS学习笔记 不断进化的屏幕适配
一、屏幕适配iOS的屏幕适配可以分为3大块,代表着不同时期的屏幕适配主流:AutoResizing:在iOS6之前,完全能够胜任,因为当时苹果只有3.5寸屏,加上比较少的支持横屏,它有非常大的局限性:只能相对于父控件布局AutoLayout:在iOS6之后,苹果多了几个尺寸屏幕,AutoResizing已经无能为力了,这时候苹果推出了AutoLayout,功能十分强大,可以
2016-09-22 12:37:39 451
转载 iOS学习笔记 音效与音乐
一、音频在iOS中,音频播放从形式上可以分为音效播放和音乐播放。音效:主要指一些短音频的播放,这类音频一般不需要进行进度、循环等控制。在iOS中,音效我们是使用AudioToolbox.framework框架实现。音乐:主要指一些较长的音频,通常需要对播放进行精确控制。在iOS中,音乐我们是使用AVFoundation.framework框架实现。
2016-09-22 12:36:14 367
转载 iOS学习笔记 推送通知
一、推送通知推送通知就是向用户推送一条信息来通知用户某件事件,可以在应用退到后台后,或者关闭后,能够通过推送一条消息通知用户某件事情,比如版本更新等等。推送通知的常用应用场景:一些任务管理APP,会到任务时间即将到达时,通知你该做任务了。健身APP定时提醒你应该健身了。买过电影票,提前半个小时通知你,电影即将开场。当你QQ或微信收到信息时,即使退到后台,也可以收到信息通知你。电
2016-09-22 12:35:08 406
转载 iOS学习笔记 推送证书与秘钥申请
一、iOS证书iOS常用的证书包括开发证书和发布证书,无论是真机调试还是最终发布应用到App Store这两个证书都是必须的,它是iOS开发的基本证书。Xcode7以后真机调试就不需要开发证书,真是开发者的福音啊!我再也不用为没有开发者账号而不能真机调试而担心了。开发证书:开发证书又分为普通开发证书和推送证书,如果仅仅是一般的应用则前者即可满足,但是如果开发推送应用则必须使用推
2016-09-22 12:33:41 315
转载 iOS学习笔记 地图(二)MapKit框架
一、地图开发介绍从iOS6.0开始地图数据不再由谷歌驱动,而是改用自家地图,当然在国内它的数据是由高德地图提供的。在iOS中进行地图开发主要有三种方式:利用MapKit框架进行地图开发,利用这种方式可以对地图进行精准的控制调用苹果官方自带的地图应用,主要用于一些简单的地图应用,无法精确控制使用第三方地图开发SDK库用得最多的还是MapKit,所以这节就只讲MapKit的
2016-09-20 19:09:08 342
转载 iOS学习笔记 地图(一)定位CoreLocation
一、定位介绍现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。要实现地图、导航功能,往往需要先熟悉定位功能。在iOS中通过CoreLocation框架进行定位操作。CoreLocation自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往
2016-09-20 16:33:53 424
转载 iOS学习笔记 CoreData
一、CoreData介绍CoreData是iOS5之后新出来的的一个框架, 是对SQLite进行一层封装升级后的一种数据持久化方式。它提供了对象关系映射的功能,即能够将OC对象转化为数据存储到SQLite数据库文件中,同时也能将数据库中的数据还原成OC对象。相较于SQLite,我们使用CoreData就不需要再编写任何SQL语句,再也不去纠结SQL语句怎么写了O(∩_∩)O哈~。二、C
2016-09-20 16:31:02 264
转载 iOS学习笔记 FMDB
一、FMDB介绍FMDB是一种第三方的开源库,FMDB就是对SQLite的API进行了封装,加上了面向对象的思想,让我们不必使用繁琐的C语言API函数,比起直接操作SQLite更加方便。FMDB优点:使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码对比苹果自带的CoreData框架,更加轻量级和灵活提供多线程安全,有效地防止数据混乱,原来的SQLite不是线程安全的
2016-09-20 16:29:21 290
转载 iOS学习笔记 数据库SQLite
一、数据库在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等。离线缓存一般都是把数据保存到项目的沙盒中。有以下几种方式:归档:NSKeyedArchiver偏好设置:NSUserDefaultsplist存储:writeToFile上述的使用可以参考iOS学习笔记15-序列化、偏好设置和归档,但上述三种方法都有一个致命的缺点,那就是都无法存储大批量的数
2016-09-20 16:27:44 230
转载 iOS学习笔记 序列化、偏好设置和归档
一、本地持久化所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:plist文件(序列化)preference(偏好设置)NSKeyedArchiver(归档)SQLite3CoreData本节我就只写关于归档、偏好设置和属性列表的,这些都是小数据持久化常用的方
2016-09-20 16:25:24 542
转载 iOS学习笔记 网络(三)WebView
一、WebViewWebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,毫无疑问WKWebView将逐步取代笨重的UIWebView。WKWebView的优点:WKWebView更多的支持HTML5的特性WKWebView更快,占用内存可
2016-09-20 16:23:23 496
转载 iOS学习笔记 网络(二)NSURLSession
在2013年WWDC上苹果揭开了NSURLSession的面纱,将它作为NSURLConnection的继任者。现在使用最广泛的第三方网络框架:AFNetworking、SDWebImage等等都使用了NSURLSession。作为iOS开发人员,应该紧随苹果的步伐,不断的学习,无论是软件的更新、系统的更新、API的更新,而不能墨守成规。相比较NSURLConnection,NSURL
2016-09-20 16:21:13 284
转载 iOS学习笔记 网络(一)NSURLConnection
一、网络请求在网络开发中,需要了解一些常用的请求方法:GET请求:get是获取数据的意思,数据以明文在URL中传递,受限于URL长度,所以传输数据量比较小。POST请求:post是向服务器提交数据的意思,提交的数据以实际内容形式存放到消息头中进行传递,无法在浏览器url中查看到,大小没有限制。HEAD请求:请求头信息,并不返回请求数据体,而只返回请求头信息,常用用于在文件下载中取得
2016-09-20 16:19:48 390
转载 iOS 学习笔记 多线程
一、iOS多线程iOS多线程开发有三种方式:NSThreadNSOperationGCDiOS在每个进程启动后都会创建一个主线程,更新UI要在主线程上,所以也称为UI线程,是其他线程的父线程。线程和进程的区别傻傻分不清楚:线程(thread):用于指代独立执行的代码段。进程(process):用于指代一个正在运行的可执行程序,它可以包含多个线程。
2016-09-20 16:17:37 231
转载 iOS 学习笔记 UIView动画
一、UIView动画苹果知道图层动画使用麻烦,就为我们封装到了UIView里,使我们可以简单的实现各种动画效果。1. 基础动画主要实现方法为:+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay
2016-09-20 15:57:53 272
转载 iOS学习笔记 核心动画CoreAnimation
一、CALayerCALayer包含在QuartzCore框架中,具有跨平台性,在iOS中使用Core Animation开发动画的本质是将CALayer内容转化为位图从而供硬件操作 。CALayer图层是依附于UIView的常用属性:属性描述anchorPoint和中心position重合的点,称为锚点,范围在(0~1,0~
2016-09-19 18:27:41 283
转载 iOS 学习笔记 Quartz2D绘图
一、Quartz2D简单介绍在iOS中常用的绘图框架就是Quartz2D,Quartz2D是Core Graphics框架的一部分,我们日常开发使用的所有UIKit组件都是由Core Graphics进行绘制的在iOS中Quartz2D绘图的一般步骤:获取绘制上下文创建并设置路径将路径添加进绘制上下文中设置上下文状态绘制路径释放路径UIKit默认为我们提供了一个图形上下
2016-09-19 17:58:20 289
转载 iOS 学习笔记 运动事件和远程控制
一、运动事件运动事件,是通过加速器进行触发,和触摸事件一样,继承UIResponder类的对象才能处理运动事件UIResponder处理运动事件的方法:#pragma mark 运动开始时执行- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;#pragma mark 运动结束后执行- (vo
2016-09-19 17:55:57 224
转载 iOS 学习笔记 手势识别
一、UIGestureRecognizer简单介绍我们已经学习了触摸事件处理,但触摸事件处理起来很麻烦,每个触摸事件处理都需要实现3个touches方法,比较繁琐,实际上我们可以使用更加简单的触摸事件处理操作,那就是手势识别UIGestureRecognizer 。手势识别操作基类UIGestureRecognizer不能直接使用,我们常使用的是它的子类,这些手势操作类都继承自UIGe
2016-09-19 16:00:48 343
转载 iOS 学习笔记 触摸事件
一、事件分发处理【由外到内】在iOS中发生触摸后,事件会加到UIApplication事件队列,UIApplication会从事件队列取出最前面的事件进行分发处理,通常会先分发给主窗口,主窗口会调用hitTest:withEvent:方法,查找适合的事件触发视图,即找到被触摸的视图对象寻找流程如下:在顶级视图(keyWindow的视图)上调用pointInside:with
2016-09-19 15:50:45 193
转载 iOS 学习笔记 视图切换
一、视图切换UITabBarController (分页控制器) - 平行管理视图UINavigationController (导航控制器) - 压栈出栈管理视图模态窗口二、UITabBarController分页控制器UITabBarController是为了利用 页签切换视图 设计的控制器该控制器有一个UITabBar控件,用户通过点击UITabBar进行
2016-09-19 15:31:22 206
转载 iOS 学习笔记 uitableView
iOS学习笔记03-UITableView一、UITableView基本介绍默认的UITableView有2种风格:UITableViewStylePlain(不分组)UITableViewStyleGrouped(分组)UITableView中的数据只有行的概念,没有列的概念,UITableView的每行数据就是一个UITableViewCell。自带的U
2016-09-19 15:15:35 208
转载 iOS 学习笔记 uiscrollview
父类UIView方法# autoresizingMask - 现在基本弃用,改用autoLayouttypedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) { UIViewAutoresizingNone = 0, //不进行自动调整 UIViewAutoresizingFlexibleL
2016-09-19 15:03:02 235
转载 iOS学习笔记 APP启动相关
AppDelegate对象方法# 程序第一次启动后才会执行- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;# 程序将要失去焦点时执行- (void)applicationWillResignActive:(UIAppli
2016-09-19 14:52:19 223
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人