ios开发
文章平均质量分 77
sifenkesi1
这个作者很懒,什么都没留下…
展开
-
iOS学习笔记 日志重定向
一、日志重定向我们在iOS开发过程中,我们时常会使用NSLog打印到控制台的日志信息进行代码调试,但这样调试的前提是连接上Xcode。如果进行真机调试但同时又不能连接Xcode的时候,就不能直接在xcode的控制台查看输出日志了,但是程序还是会执行那些Log的,如果要查看这些日志,我们就需要把输出日志信息保存到文件中,然后进行查看。标准NSLog的打印默认是往标准错误(stderr)进转载 2016-09-22 13:09:57 · 293 阅读 · 0 评论 -
iOS学习笔记 录音和网络流媒体
一、录音AVFoundation框架还有一个AVAudioRecorder类专门处理录音操作,它同样支持多种音频格式。先来了解下AVAudioRecorder的常用属性:@property (readonly, getter=isRecording) BOOL recording;//是否正在录音@property (readonly) NSDictionaryNSString *,转载 2016-09-22 12:39:09 · 294 阅读 · 0 评论 -
iOS学习笔记 不断进化的屏幕适配
一、屏幕适配iOS的屏幕适配可以分为3大块,代表着不同时期的屏幕适配主流:AutoResizing:在iOS6之前,完全能够胜任,因为当时苹果只有3.5寸屏,加上比较少的支持横屏,它有非常大的局限性:只能相对于父控件布局AutoLayout:在iOS6之后,苹果多了几个尺寸屏幕,AutoResizing已经无能为力了,这时候苹果推出了AutoLayout,功能十分强大,可以转载 2016-09-22 12:37:39 · 433 阅读 · 0 评论 -
iOS学习笔记 音效与音乐
一、音频在iOS中,音频播放从形式上可以分为音效播放和音乐播放。音效:主要指一些短音频的播放,这类音频一般不需要进行进度、循环等控制。在iOS中,音效我们是使用AudioToolbox.framework框架实现。音乐:主要指一些较长的音频,通常需要对播放进行精确控制。在iOS中,音乐我们是使用AVFoundation.framework框架实现。转载 2016-09-22 12:36:14 · 352 阅读 · 0 评论 -
iOS学习笔记 推送通知
一、推送通知推送通知就是向用户推送一条信息来通知用户某件事件,可以在应用退到后台后,或者关闭后,能够通过推送一条消息通知用户某件事情,比如版本更新等等。推送通知的常用应用场景:一些任务管理APP,会到任务时间即将到达时,通知你该做任务了。健身APP定时提醒你应该健身了。买过电影票,提前半个小时通知你,电影即将开场。当你QQ或微信收到信息时,即使退到后台,也可以收到信息通知你。电转载 2016-09-22 12:35:08 · 389 阅读 · 0 评论 -
iOS学习笔记 推送证书与秘钥申请
一、iOS证书iOS常用的证书包括开发证书和发布证书,无论是真机调试还是最终发布应用到App Store这两个证书都是必须的,它是iOS开发的基本证书。Xcode7以后真机调试就不需要开发证书,真是开发者的福音啊!我再也不用为没有开发者账号而不能真机调试而担心了。开发证书:开发证书又分为普通开发证书和推送证书,如果仅仅是一般的应用则前者即可满足,但是如果开发推送应用则必须使用推转载 2016-09-22 12:33:41 · 285 阅读 · 0 评论 -
iOS学习笔记 地图(二)MapKit框架
一、地图开发介绍从iOS6.0开始地图数据不再由谷歌驱动,而是改用自家地图,当然在国内它的数据是由高德地图提供的。在iOS中进行地图开发主要有三种方式:利用MapKit框架进行地图开发,利用这种方式可以对地图进行精准的控制调用苹果官方自带的地图应用,主要用于一些简单的地图应用,无法精确控制使用第三方地图开发SDK库用得最多的还是MapKit,所以这节就只讲MapKit的转载 2016-09-20 19:09:08 · 315 阅读 · 0 评论 -
iOS学习笔记 地图(一)定位CoreLocation
一、定位介绍现在很多社交、电商、团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的。的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式。要实现地图、导航功能,往往需要先熟悉定位功能。在iOS中通过CoreLocation框架进行定位操作。CoreLocation自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往转载 2016-09-20 16:33:53 · 401 阅读 · 0 评论 -
iOS学习笔记 CoreData
一、CoreData介绍CoreData是iOS5之后新出来的的一个框架, 是对SQLite进行一层封装升级后的一种数据持久化方式。它提供了对象关系映射的功能,即能够将OC对象转化为数据存储到SQLite数据库文件中,同时也能将数据库中的数据还原成OC对象。相较于SQLite,我们使用CoreData就不需要再编写任何SQL语句,再也不去纠结SQL语句怎么写了O(∩_∩)O哈~。二、C转载 2016-09-20 16:31:02 · 250 阅读 · 0 评论 -
iOS学习笔记 FMDB
一、FMDB介绍FMDB是一种第三方的开源库,FMDB就是对SQLite的API进行了封装,加上了面向对象的思想,让我们不必使用繁琐的C语言API函数,比起直接操作SQLite更加方便。FMDB优点:使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码对比苹果自带的CoreData框架,更加轻量级和灵活提供多线程安全,有效地防止数据混乱,原来的SQLite不是线程安全的转载 2016-09-20 16:29:21 · 273 阅读 · 0 评论 -
iOS学习笔记 数据库SQLite
一、数据库在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等。离线缓存一般都是把数据保存到项目的沙盒中。有以下几种方式:归档:NSKeyedArchiver偏好设置:NSUserDefaultsplist存储:writeToFile上述的使用可以参考iOS学习笔记15-序列化、偏好设置和归档,但上述三种方法都有一个致命的缺点,那就是都无法存储大批量的数转载 2016-09-20 16:27:44 · 210 阅读 · 0 评论 -
iOS学习笔记 序列化、偏好设置和归档
一、本地持久化所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:plist文件(序列化)preference(偏好设置)NSKeyedArchiver(归档)SQLite3CoreData本节我就只写关于归档、偏好设置和属性列表的,这些都是小数据持久化常用的方转载 2016-09-20 16:25:24 · 523 阅读 · 0 评论 -
iOS学习笔记 视频播放
一、视频在iOS中播放视频可以使用两个框架来实现:MediaPlayer框架的MPMoviePlayerController和MPMoviePlayerViewControllerAVFoundation框架中的AVPlayerAVKit框架的AVPlayerViewController【iOS8之后才有】但在近两年的WWDC上,MediaPlayer框架被iOS9标记为d转载 2016-09-22 12:40:59 · 516 阅读 · 0 评论 -
iOS学习笔记 摄像头
一、摄像头在iOS中,手机摄像头的使用有以下两种方法:UIImagePickerController拍照和视频录制优点:使用方便,功能强大缺点:高度封装性,无法实现一些自定义工作AVFoundation框架实现优点:灵活性强,提供了很多现成的输入设备和输出设备,还有很多底层的内容可以供开发者使用缺点:需要和底层打交道,学习难度大,使用复杂我们平常使用转载 2016-09-22 12:43:31 · 329 阅读 · 0 评论 -
iOS学习笔记 系统服务(一)短信和邮件
一、系统应用在开发某些应用时,我们可能希望能够调用iOS系统内置的电话、短信、邮件、浏览器应用,或者直接调用安装的第三方应用,这个要怎么实现呢?这里统一使用UIApplication的一个对象方法来实现://打开不同的系统应用- (void)openUrl:(NSURL *)url;那怎么区分我是要打电话还是发短信等等呢?之前我们学习网络的时候,是不是URL最前面使用的是ht转载 2016-09-22 12:45:46 · 307 阅读 · 0 评论 -
iOS学习笔记 ReactiveCocoa入门
一、响应式编程范式FRPFRP,全称为Functional Reactive Programming,是一种响应变化的编程范式,最近几年比较火,大概的理解就像这样:当a的值或者b的值发生变化时,c的值会自动响应a的值或b的值变化的信号,自动更正自己的值,类似这种编程思想就称为FRP。FRP提供了一种信号机制来实现这样的效果,通过信号来记录值的变化。信号可以被叠加转载 2016-09-22 13:09:10 · 360 阅读 · 0 评论 -
iOS学习笔记 MJExtension使用
一、MJExtension第三方框架我们在iOS开发过程中,我们常常需要将字典数据(也就是JSON数据)与Model模型之间的转化,例如网络请求返回的微博数据、等等,如果我们自己全部手动去创建模型并赋值,都是一些毫无技术含量的代码,费时费力,而且还可能会赋值出错,让我们很头疼。MJExtension框架就是为了解决这个问题而设计得第三方开源库。这个开源库是之前传智博客的讲师李明杰老师写的,转载 2016-09-22 13:08:00 · 391 阅读 · 0 评论 -
iOS学习笔记 时间和日期计算
一、时间和日期计算我们在应用开发中,时常需要和时间打交道,比如获取当前时间,获取两个时间点相隔的时间等等,在iOS开发中与时间相关的类有如下几个:NSDate:表示一个绝对的时间点NSTimeZone:时区信息NSLocale:本地化信息NSDateComponents:一个封装了具体年月日、时秒分、周、季度等的类NSCalendar:日历类,它提供了大部分的日期计算接口NSDat转载 2016-09-22 13:07:00 · 361 阅读 · 0 评论 -
iOS学习笔记 Masonry自动布局
一、Masonry介绍之前我们在屏幕适配的章节中学习过AutoLayout的使用,但那都是在可视化界面上进行添加约束完成的,我们很多时候都需要在代码中使用AutoLayout约束,苹果也为我们提供了实现,使用NSLayoutConstraint类表示约束,但使用起来比较复杂,代码量比较大,例如创建一个约束的方法:+ (id)constraintWithItem:(id)view1 /* 一转载 2016-09-22 13:05:36 · 712 阅读 · 0 评论 -
iOS学习笔记 社交分享
一、社交分享现在很多应用都内置“社交分享”功能,可以将看到的新闻、博客、广告等内容分享到微博、微信、QQ、人人网等,其实从iOS6.0开始苹果官方就内置了Social.framework专门来实现社交分享功能,利用这个框架开发者只需要几句代码就可以实现内容分享。Social框架使用步骤:导入Social.framework框架,添加头文件#import 创建分享内容编辑转载 2016-09-22 13:04:30 · 250 阅读 · 0 评论 -
iOS学习笔记 加速计和陀螺仪
一、CoreMotion框架介绍我们知道有一些iOS的应用,会有一些特殊的要求,比如:电子罗盘指南针之类的应用:让我们知道方向。运动类型软件:让我们知道我们跑步多少公里。社交软件中的摇一摇功能。游戏中扮演角色类中根据设备的晃动等进行操作。其实,他们多半是使用了iOS中的一个核心运动框架CoreMotion.framework使用iOS提供给我们的CoreMoti转载 2016-09-22 13:03:31 · 2542 阅读 · 0 评论 -
iOS学习笔记 UICollectionView入门
一、UICollectionView介绍UICollectionView和UICollectionViewController类是iOS6新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView和UITableViewController类,但也有所不同。UICollectionView可以实现如下效果,也是一个常用的控件:二转载 2016-09-22 13:02:08 · 353 阅读 · 0 评论 -
iOS学习笔记 iCloud入门
一、iCloud云服务iCloud是苹果提供的云端服务,用户可以将通讯录、备忘录、邮件、照片、音乐、视频等备份到云服务器并在各个苹果设备间直接进行共享而无需关心数据同步问题,甚至即使你的设备丢失后在一台新的设备上也可以通过Apple ID登录同步。苹果已经将云端存储功能开放给开发者,可以存储两类数据:key-value data:分享小量的非关键配置数据到应用的多个实例,使转载 2016-09-22 13:00:47 · 650 阅读 · 0 评论 -
iOS学习笔记 从图册获取图片和视频
一、从图册中获取本地图片和视频从图册中获取文件,我们使用的是UIImagePickerController,这个类我们在之前的摄像头中使用过 这里我们使用的是它的另外一个功能,那就是从图册中获取图片和视频基本步骤:创建UIImagePickerController对象,并设置代理设置拾取源为图册,设置可编辑属性如果只是获取图片,就设置图片的媒体类型,如果只是获取视频,就设置视频转载 2016-09-22 12:59:11 · 403 阅读 · 0 评论 -
iOS学习笔记 系统服务(三)蓝牙
一、蓝牙随着蓝牙低功耗技术BLE(Bluetooth Low Energy)的发展,蓝牙技术正在一步步成熟,如今的大部分移动设备都配备有蓝牙4.0,相比之前的蓝牙技术耗电量大大降低。在iOS中进行蓝牙传输常用的框架有如下几种:GameKit.framework:iOS7之前的蓝牙框架,只可用于同应用之间的蓝牙传输。MultipeerConnectivity.framewor转载 2016-09-22 12:57:33 · 545 阅读 · 0 评论 -
iOS学习笔记 系统服务(二)通讯录
一、通讯录iOS中的通讯录是存储在数据库中的,由于iOS的权限设计,开发人员是不允许直接访问通讯录数据库的,实现通讯录操作需要使用到AddressBook.framework框架。AddressBook.framework框架:可以从底层去操作通讯录的所有信息,做到精确控制是基于C语言编写的,无法使用ARC管理内存,需要开发者手动管理内存需要自构UI界面iOS还提供了另转载 2016-09-22 12:56:02 · 305 阅读 · 0 评论 -
iOS学习笔记 网络(三)WebView
一、WebViewWebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,毫无疑问WKWebView将逐步取代笨重的UIWebView。WKWebView的优点:WKWebView更多的支持HTML5的特性WKWebView更快,占用内存可转载 2016-09-20 16:23:23 · 476 阅读 · 0 评论 -
iOS学习笔记 网络(二)NSURLSession
在2013年WWDC上苹果揭开了NSURLSession的面纱,将它作为NSURLConnection的继任者。现在使用最广泛的第三方网络框架:AFNetworking、SDWebImage等等都使用了NSURLSession。作为iOS开发人员,应该紧随苹果的步伐,不断的学习,无论是软件的更新、系统的更新、API的更新,而不能墨守成规。相比较NSURLConnection,NSURL转载 2016-09-20 16:21:13 · 264 阅读 · 0 评论 -
学习笔记:Objective C 的内存管理(4)----ARC内存管理机制
一、ARC的基本使用 (ARC是编译器的特性)(一)ARC的判断准则:只要没有强指针指向对象,就会释放对象。指针:1、强指针:所有指针默认均为强指针(默认__strong) 2、弱指针:__weak原创 2015-04-05 11:16:40 · 296 阅读 · 0 评论 -
学习笔记:OC的数据类型 block 使用
一、Block基本使用block用来保存一段代码block标志:^block类似于函数:1、可以保存代码· 2、有返回值3、有形参定义block变量:void (^myblock)() = ^{......};执行:myblock();带参数和返回值:原创 2015-04-05 11:32:18 · 428 阅读 · 0 评论 -
学习笔记:OC的protocol协议及代理设计模式
一、简单使用1、基本用途可以用来声明一大堆方法(不能声明成员变量)只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明只要父类遵守了某个协议,就相当于子类也遵守了 2、格式协议的编写@protocol 协议名称// 方法声明列表@end某个类遵守协议@interface 类名 :父类 协议名称1,协议名称2>@end原创 2015-04-07 17:06:14 · 443 阅读 · 0 评论 -
学习笔记:Foundation(1)---NSRange结构体、NSPoint结构体
一、NSRange结构体1、结构体内容 //NSUInteger:unsigned long2、变量表示方式:例:NSString *str = @"i love oc";表示1:NSRange r1 = {2, 4}; //不用表示2: NSRange r2 = {.location = 2, .length = 4};//不用原创 2015-04-08 14:04:33 · 423 阅读 · 0 评论 -
学习笔记:Foundation(2)---常用类、集合类使用
NSString ->NSMutableStringNSArray->NSMutableArrayNSSet->NSMutableSetNSDictionary->NSMutableDictionary一、字符串的创建二、读取URL资源(字符串另一种创建方式)通过相应的类方法创建如下:三、将字符串写入文件:四、可变原创 2015-04-08 14:05:59 · 305 阅读 · 0 评论 -
学习笔记:C程序基础(1)
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、关键字1. 什么是关键字1> 关键字就是C语言提供的有特殊含义的符号,也叫做“保留字”2> C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义autodouble int struct break else lon原创 2015-04-10 11:04:09 · 346 阅读 · 0 评论 -
学习笔记:C程序基础(2)
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一、变量的内存分析1. 字节和地址为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”。1> 内存以“字节为单位”0x表示的是十六进制,不用过于纠结,能看懂这些数字之间谁大谁小就行了2> 不同类原创 2015-04-10 11:19:42 · 369 阅读 · 0 评论 -
学习笔记:OC简介及面向对象(1)
一、OC简介C语言的基础上,增加了一层最小的面向对象语法完全兼容C语言可以在OC代码中混入C语言代码,甚至是C++代码可以使用OC开发Mac OS X平台和iOS平台的应用程序二、OC语法预览1. 关键字基本上所有关键字都是以@开头下面列举一些常见的关键字,看一眼就行了,不用去翻资料查找它们的含义@interface、@implementa原创 2015-04-12 10:37:49 · 327 阅读 · 0 评论 -
学习笔记:OC面向对象(2)
一、 定义OC的类和创建OC的对象Ø 接下来就在OC中模拟现实生活中的情况,创建一辆车出来。首先要有一个车子类,然后再利用车子类创建车子对象Ø 要描述OC中的类稍微麻烦一点,分2大步骤:类的声明、类的实现(定义)。跟函数类似,函数有分声明和定义1. 类的声明1) 代码编写Ø 定义一个Car类,拥有2个属性:轮子数、时速,1个行为:跑原创 2015-04-12 10:59:17 · 317 阅读 · 0 评论 -
学习笔记:C程序基础(3)
函数一、函数任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。二、函数的定义1. 定义函数的目的将一个常用的功能封装起来,方便以后调用原创 2015-04-10 13:10:30 · 568 阅读 · 0 评论 -
学习笔记:OC核心语法
一、 分类-Category1. 基本用途Ø 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式l 继承l 分类(Category) 2. 格式Ø 分类的声明@interface 类名 (分类名称)// 方法声明@endØ 分类的实现@implementation 类名 (分类原创 2015-04-12 11:07:15 · 367 阅读 · 0 评论 -
学习笔记:Objective C 的内存管理(3)----@class以及Autorelease用法
一、@class(一)1、@class作用:仅仅告诉编译器,某某是一个类 2、开发中引用一个类的规范1>在 . h 文件中用@class来声明类2>在 . m文件中用#import来包含类的所有东西(二)和#import的区别1、#import方式会包含被引用类的所有信息,包括被引用类的变量和方法;@class方式只是告诉编译器在A.h文件中 B*b 只是类的声原创 2015-04-04 12:17:20 · 356 阅读 · 0 评论