iOS陆哥开发笔记(七) (AVFoundation简单介绍)

在AVFoundation框架中AVAudioRecorder类专门处理录音操作,支持多种音频格式。

以下是经常使用的属性和方法:

属性 说明
@property(readonly, getter=isPlaying) BOOL playing 是否正在播放,仅仅读
@property(readonly) NSUInteger numberOfChannels 音频声道数,仅仅读
@property(readonly) NSTimeInterval duration 音频时长
@property(readonly) NSURL *url 音频文件路径,仅仅读
@property(readonly) NSData *data 音频数据,仅仅读
@property float pan 立体声平衡,假设为-1.0则全然左声道,假设0.0则左右声道平衡。假设为1.0则全然为右声道
@property float volume 音量大小。范围0-1.0
@property BOOL enableRate 是否同意改变播放速率
@property float rate 播放速率。范围0.5-2.0。假设为1.0则正常播放。假设要改动播放速率则必须设置enableRate为YES
@property NSTimeInterval currentTime 当前播放时长
@property(readonly) NSTimeInterval deviceCurrentTime 输出设备播放音频的时间,注意假设播放中被暂停此时间也会继续累加
@property NSInteger numberOfLoops 循环播放次数。假设为0则不循环。假设小于0则无限循环,大于0则表示循环次数
@property(readonly) NSDictionary *settings 音频播放设置信息。仅仅读
@property(getter=isMeteringEnabled) BOOL meteringEnabled 是否启用音频測量。默觉得NO。一旦启用音频測量能够通过updateMeters方法更新測量值
对象方法 说明
- (instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError 使用文件URL初始化播放器,注意这个URL不能是HTTP URL,AVAudioPlayer不支持载入网络媒体流,仅仅能播放本地文件
- (instancetype)initWithData:(NSData *)data error:(NSError **)outError 使用NSData初始化播放器,注意使用此方法时必须文件格式和文件后缀一致。否则出错,所以相比此方法更推荐使用上述方法或- (instancetype)initWithData:(NSData *)data fileTypeHint:(NSString *)utiString error:(NSError **)outError方法进行初始化
- (BOOL)prepareToPlay; 载入音频文件到缓冲区,注意即使在播放之前音频文件没有载入到缓冲区程序也会隐式调用此方法。
- (BOOL)play; 播放音频文件
- (BOOL)playAtTime:(NSTimeInterval)time 在指定的时间開始播放音频
- (void)pause; 暂停播放
- (void)stop; 停止播放
- (void)updateMeters 更新音频測量值,注意假设要更新音频測量值必须设置meteringEnabled为YES,通过音频測量值能够即时获得音频分贝等信息
- (float)peakPowerForChannel:(NSUInteger)channelNumber; 获得指定声道的分贝峰值,注意假设要获得分贝峰值必须在此之前调用updateMeters方法
- (float)averagePowerForChannel:(NSUInteger)channelNumber 获得指定声道的分贝平均值。注意假设要获得分贝平均值必须在此之前调用updateMeters方法
@property(nonatomic, copy) NSArray *channelAssignments 获得或设置播放声道
代理方法 说明
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag 音频播放完毕
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error 音频解码错误发生
会话类型 说明 是否要求输入 是否要求输出 是否遵从静音键
AVAudioSessionCategoryAmbient 混音播放。能够与其它音频应用同一时候播放
AVAudioSessionCategorySoloAmbient 独占播放
AVAudioSessionCategoryPlayback 后台播放,也是独占的
AVAudioSessionCategoryRecord 录音模式,用于录音时使用
AVAudioSessionCategoryPlayAndRecord 播放和录音,此时能够录音也能够播放
AVAudioSessionCategoryAudioProcessing 硬件解码音频。此时不能播放和录制
AVAudioSessionCategoryMultiRoute 多种输入输出。比如能够耳机、USB设备同一时候播放

MPMusicPlayerController

以下先来看一下MPMusicPlayerController的经常使用属性和方法:

属性 说明
@property (nonatomic, readonly) MPMusicPlaybackState playbackState 播放器状态。枚举类型:

MPMusicPlaybackStateStopped:停止播放 MPMusicPlaybackStatePlaying:正在播放

MPMusicPlaybackStatePaused:暂停播放

MPMusicPlaybackStateInterrupted:播放中断

MPMusicPlaybackStateSeekingForward:向前查找

MPMusicPlaybackStateSeekingBackward:向后查找

@property (nonatomic) MPMusicRepeatMode repeatMode 反复模式,枚举类型:

MPMusicRepeatModeDefault:默认模式,使用用户的首选项(系统音乐程序设置)

MPMusicRepeatModeNone:不反复

MPMusicRepeatModeOne:单曲循环

MPMusicRepeatModeAll:在当前列表内循环

@property (nonatomic) MPMusicShuffleMode shuffleMode 随机播放模式,枚举类型:

MPMusicShuffleModeDefault:默认模式。使用用户首选项(系统音乐程序设置)

MPMusicShuffleModeOff:不随机播放

MPMusicShuffleModeSongs:按歌曲随机播放

MPMusicShuffleModeAlbums:按专辑随机播放

@property (nonatomic, copy) MPMediaItem *nowPlayingItem 正在播放的音乐项
@property (nonatomic, readonly) NSUInteger indexOfNowPlayingItem 当前正在播放的音乐在播放队列中的索引
@property(nonatomic, readonly) BOOL isPreparedToPlay 是否准好播放准备
@property(nonatomic) NSTimeInterval currentPlaybackTime 当前已播放时间,单位:秒
@property(nonatomic) float currentPlaybackRate 当前播放速度。是一个播放速度倍率,0表示暂停播放。1代表正常速度
类方法 说明
+ (MPMusicPlayerController *)applicationMusicPlayer; 获取应用播放器。注意此类播放器无法在后台播放
+ (MPMusicPlayerController *)systemMusicPlayer 获取系统播放器。支持后台播放
对象方法 说明
- (void)setQueueWithQuery:(MPMediaQuery *)query 使用媒体队列设置播放源媒体队列
- (void)setQueueWithItemCollection:(MPMediaItemCollection *)itemCollection 使用媒体项集合设置播放源媒体队列
- (void)skipToNextItem 下一曲
- (void)skipToBeginning 从起始位置播放
- (void)skipToPreviousItem 上一曲
- (void)beginGeneratingPlaybackNotifications 开启播放通知。注意不同于其它播放器。MPMusicPlayerController要想获得通知必须首先开启。默认情况无法获得通知
- (void)endGeneratingPlaybackNotifications 关闭播放通知
- (void)prepareToPlay 做好播放准备(载入音频到缓冲区)。在使用play方法播放时假设没有做好准备回自己主动调用该方法
- (void)play 開始播放
- (void)pause 暂停播放
- (void)stop 停止播放
- (void)beginSeekingForward 開始向前查找(快进)
- (void)beginSeekingBackward 開始向后查找(快退)
- (void)endSeeking 结束查找
通知 说明

(注意:要想获得MPMusicPlayerController通知必须首先调用beginGeneratingPlaybackNotifications开启通知)

MPMusicPlayerControllerPlaybackStateDidChangeNotification 播放状态改变
MPMusicPlayerControllerNowPlayingItemDidChangeNotification 当前播放音频改变
MPMusicPlayerControllerVolumeDidChangeNotification 声音大小改变
MPMediaPlaybackIsPreparedToPlayDidChangeNotification 准备好播放

MPMoviePlayerController

在iOS中播放视频能够使用MediaPlayer.framework种的MPMoviePlayerController类来完毕,它支持本地视频和网络视频播放。这个类实现了MPMediaPlayback协议,因此具备一般的播放器控制功能,比如播放、暂停、停止等。

可是MPMediaPlayerController自身并非一个完整的视图控制器,假设要在UI中展示视频须要将view属性加入到界面中。

以下列出了MPMoviePlayerController的经常使用属性和方法:

属性 说明
@property (nonatomic, copy) NSURL *contentURL 播放媒体URL,这个URL能够是本地路径,也能够是网络路径
@property (nonatomic, readonly) UIView *view 播放器视图,假设要显示视频必须将此视图加入到控制器视图中
@property (nonatomic, readonly) UIView *backgroundView 播放器背景视图
@property (nonatomic, readonly) MPMoviePlaybackState playbackState 媒体播放状态,枚举类型:

MPMoviePlaybackStateStopped:停止播放

MPMoviePlaybackStatePlaying:正在播放

MPMoviePlaybackStatePaused:暂停

MPMoviePlaybackStateInterrupted:中断

MPMoviePlaybackStateSeekingForward:向前定位

MPMoviePlaybackStateSeekingBackward:向后定位

@property (nonatomic, readonly) MPMovieLoadState loadState 网络媒体载入状态。枚举类型:

MPMovieLoadStateUnknown:位置类型

MPMovieLoadStatePlayable:

MPMovieLoadStatePlaythroughOK:这样的状态假设shouldAutoPlay为YES将自己主动播放

MPMovieLoadStateStalled:停滞状态

@property (nonatomic) MPMovieControlStyle controlStyle 控制面板风格,枚举类型:

MPMovieControlStyleNone:无控制面板

MPMovieControlStyleEmbedded:嵌入视频风格

MPMovieControlStyleFullscreen:全屏

MPMovieControlStyleDefault:默认风格

@property (nonatomic) MPMovieRepeatMode repeatMode; 反复播放模式。枚举类型:

MPMovieRepeatModeNone:不反复,默认值

MPMovieRepeatModeOne:反复播放

@property (nonatomic) BOOL shouldAutoplay 当网络媒体缓存到一定数据时是否自己主动播放,默觉得YES
@property (nonatomic, getter=isFullscreen) BOOL fullscreen 是否全屏展示。默觉得NO,注意假设要通过此属性设置全屏必须在视图显示完毕后设置,否则无效
@property (nonatomic) MPMovieScalingMode scalingMode 视频缩放填充模式,枚举类型:

MPMovieScalingModeNone:不进行不论什么缩放

MPMovieScalingModeAspectFit:固定缩放比例而且尽量所有展示视频,不会裁切视频

MPMovieScalingModeAspectFill:固定缩放比例并填充满整个视图展示。可能会裁切视频

MPMovieScalingModeFill:不固定缩放比例压缩填充整个视图,视频不会被裁切可是比例失衡

@property (nonatomic, readonly) BOOL readyForDisplay 是否有相关媒体被播放
@property (nonatomic, readonly) MPMovieMediaTypeMask movieMediaTypes 媒体类别,枚举类型:

MPMovieMediaTypeMaskNone:未知类型

MPMovieMediaTypeMaskVideo:视频

MPMovieMediaTypeMaskAudio:音频

@property (nonatomic) MPMovieSourceType movieSourceType 媒体源。枚举类型:

MPMovieSourceTypeUnknown:未知来源

MPMovieSourceTypeFile:本地文件

MPMovieSourceTypeStreaming:流媒体(直播或点播)

@property (nonatomic, readonly) NSTimeInterval duration 媒体时长,假设未知则返回0
@property (nonatomic, readonly) NSTimeInterval playableDuration 媒体可播放时长,主要用于表示网络媒体已下载视频时长
@property (nonatomic, readonly) CGSize naturalSize 视频实际尺寸。假设未知则返回CGSizeZero
@property (nonatomic) NSTimeInterval initialPlaybackTime 起始播放时间
@property (nonatomic) NSTimeInterval endPlaybackTime 终止播放时间
@property (nonatomic) BOOL allowsAirPlay 是否同意无线播放,默觉得YES
@property (nonatomic, readonly, getter=isAirPlayVideoActive) BOOL airPlayVideoActive 当前媒体是否正在通过AirPlay播放
@property(nonatomic, readonly) BOOL isPreparedToPlay 是否准备好播放
@property(nonatomic) NSTimeInterval currentPlaybackTime 当前播放时间,单位:秒
@property(nonatomic) float currentPlaybackRate 当前播放速度,假设暂停则为0,正常速度为1.0,非0数据表示倍率
对象方法 说明
- (instancetype)initWithContentURL:(NSURL *)url 使用指定的URL初始化媒体播放控制器对象
- (void)setFullscreen:(BOOL)fullscreen animated:(BOOL)animated 设置视频全屏,注意假设要通过此方法设置全屏则必须在其视图显示之后设置,否则无效
- (void)requestThumbnailImagesAtTimes:(NSArray *)playbackTimes timeOption:(MPMovieTimeOption)option 获取在指定播放时间的视频缩略图,第一个參数是获取缩略图的时间点数组。第二个參数代表时间点精度。枚举类型:

MPMovieTimeOptionNearestKeyFrame:时间点附近

MPMovieTimeOptionExact:准确时间

- (void)cancelAllThumbnailImageRequests 取消全部缩略图获取请求
- (void)prepareToPlay 准备播放,载入视频数据到缓存,当调用play方法时假设没有准备好会自己主动调用此方法
- (void)play 開始播放
- (void)pause 暂停播放
- (void)stop 停止播放
- (void)beginSeekingForward 向前定位
- (void)beginSeekingBackward 向后定位
- (void)endSeeking 停止快进/快退
通知 说明
MPMoviePlayerScalingModeDidChangeNotification 视频缩放填充模式发生改变
MPMoviePlayerPlaybackDidFinishNotification 媒体播放完毕或用户手动退出。详细完毕原因能够通过通知userInfo中的key为MPMoviePlayerPlaybackDidFinishReasonUserInfoKey的对象获取
MPMoviePlayerPlaybackStateDidChangeNotification 播放状态改变。可配合playbakcState属性获取详细状态
MPMoviePlayerLoadStateDidChangeNotification 媒体网络载入状态改变
MPMoviePlayerNowPlayingMovieDidChangeNotification 当前播放的媒体内容发生改变
MPMoviePlayerWillEnterFullscreenNotification 将要进入全屏
MPMoviePlayerDidEnterFullscreenNotification 进入全屏后
MPMoviePlayerWillExitFullscreenNotification 将要退出全屏
MPMoviePlayerDidExitFullscreenNotification 退出全屏后
MPMoviePlayerIsAirPlayVideoActiveDidChangeNotification 当媒体開始通过AirPlay播放或者结束AirPlay播放
MPMoviePlayerReadyForDisplayDidChangeNotification 视频显示状态改变
MPMovieMediaTypesAvailableNotification 确定了媒体可用类型后
MPMovieSourceTypeAvailableNotification 确定了媒体来源后
MPMovieDurationAvailableNotification 确定了媒体播放时长后
MPMovieNaturalSizeAvailableNotification 确定了媒体的实际尺寸后
MPMoviePlayerThumbnailImageRequestDidFinishNotification 缩略图请求完毕之后
MPMediaPlaybackIsPreparedToPlayDidChangeNotification 做好播放准备后

UIImagePickerController拍照和视频录制

以下看一下在iOS怎样拍照和录制视频。在iOS中要拍照和录制视频最简单的方法就是使用UIImagePickerController。

UIImagePickerController继承于UINavigationController,前面的文章中主要使用它来选取照片,事实上UIImagePickerController的功能不仅如此,它还能够用来拍照和录制视频。

首先看一下这个类经常使用的属性和方法:

属性 说明
@property(nonatomic)           UIImagePickerControllerSourceType     sourceType 拾取源类型,sourceType是枚举类型:

UIImagePickerControllerSourceTypePhotoLibrary:照片库

,默认值

UIImagePickerControllerSourceTypeCamera:摄像头

UIImagePickerControllerSourceTypeSavedPhotosAlbum:相簿

@property(nonatomic,copy)      NSArray                              *mediaTypes 媒体类型,默认情况下此数组包括kUTTypeImage,所以拍照时能够不用设置;可是当要录像的时候必须设置,能够设置为kUTTypeVideo(视频,但不带声音)或者kUTTypeMovie(视频并带有声音)
@property(nonatomic)           NSTimeInterval                        videoMaximumDuration 视频最大录制时长。默觉得10 s
@property(nonatomic)           UIImagePickerControllerQualityType    videoQuality 视频质量,枚举类型:

UIImagePickerControllerQualityTypeHigh:高清质量

UIImagePickerControllerQualityTypeMedium:中等质量。适合WiFi传输

UIImagePickerControllerQualityTypeLow:低质量,适合蜂窝网传输

UIImagePickerControllerQualityType640x480:640*480

UIImagePickerControllerQualityTypeIFrame1280x720:1280*720

UIImagePickerControllerQualityTypeIFrame960x540:960*540

@property(nonatomic)           BOOL                                  showsCameraControls 是否显示摄像头控制面板。默觉得YES
@property(nonatomic,retain)    UIView                                *cameraOverlayView 摄像头上覆盖的视图。可用通过这个视频来自己定义拍照或录像界面
@property(nonatomic)           CGAffineTransform                     cameraViewTransform 摄像头形变
@property(nonatomic) UIImagePickerControllerCameraCaptureMode cameraCaptureMode 摄像头捕获模式,捕获模式是枚举类型:

UIImagePickerControllerCameraCaptureModePhoto:拍照模式

UIImagePickerControllerCameraCaptureModeVideo:视频录制模式

@property(nonatomic) UIImagePickerControllerCameraDevice      cameraDevice 摄像头设备,cameraDevice是枚举类型:

UIImagePickerControllerCameraDeviceRear:前置摄像头

UIImagePickerControllerCameraDeviceFront:后置摄像头

@property(nonatomic) UIImagePickerControllerCameraFlashMode   cameraFlashMode 闪光灯模式,枚举类型:

UIImagePickerControllerCameraFlashModeOff:关闭闪光灯

UIImagePickerControllerCameraFlashModeAuto:闪光灯自己主动

UIImagePickerControllerCameraFlashModeOn:打开闪光灯

类方法 说明
+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType 指定的源类型是否可用,sourceType是枚举类型:

UIImagePickerControllerSourceTypePhotoLibrary:照片库

UIImagePickerControllerSourceTypeCamera:摄像头

UIImagePickerControllerSourceTypeSavedPhotosAlbum:相簿

+ (NSArray *)availableMediaTypesForSourceType:(UIImagePickerControllerSourceType)sourceType 指定的源设备上可用的媒体类型,一般就是图片和视频
+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice 指定的摄像头是否可用。cameraDevice是枚举类型:

UIImagePickerControllerCameraDeviceRear:前置摄像头

UIImagePickerControllerCameraDeviceFront:后置摄像头

+ (BOOL)isFlashAvailableForCameraDevice:(UIImagePickerControllerCameraDevice)cameraDevice 指定摄像头的闪光灯是否可用
+ (NSArray *)availableCaptureModesForCameraDevice:(UIImagePickerControllerCameraDevice)cameraDevice 获得指定摄像头上的可用捕获模式,捕获模式是枚举类型:

UIImagePickerControllerCameraCaptureModePhoto:拍照模式

UIImagePickerControllerCameraCaptureModeVideo:视频录制模式

对象方法 说明
- (void)takePicture 编程方式拍照
- (BOOL)startVideoCapture 编程方式录制视频
- (void)stopVideoCapture 编程方式停止录制视频
代理方法 说明
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 媒体拾取完毕
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker 取消拾取
扩展方法(主要用于保存照片、视频到相簿) 说明
UIImageWriteToSavedPhotosAlbum(UIImage *image, id completionTarget, SEL completionSelector, void *contextInfo) 保存照片到相簿
UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(NSString *videoPath) 是否能将视频保存到相簿
void UISaveVideoAtPathToSavedPhotosAlbum(NSString *videoPath, id completionTarget, SEL completionSelector, void *contextInfo) 保存视频到相簿
时间: 2024-10-10 07:41:17

iOS陆哥开发笔记(七) (AVFoundation简单介绍)的相关文章

iOS陆哥开发笔记(七) (AVFoundation简介)

在AVFoundation框架中AVAudioRecorder类专门处理录音操作,支持多种音频格式.下面是常用的属性和方法: 属性 说明 @property(readonly, getter=isPlaying) BOOL playing 是否正在播放,只读 @property(readonly) NSUInteger numberOfChannels 音频声道数,只读 @property(readonly) NSTimeInterval duration 音频时长 @property(read

iOS陆哥开发笔记(五) (地图定位之官方API)

定位 要实现地图.导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作.Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图开发要配合定位框架使用.在Core Location中主要包含了定位.地理编码(包括反编码)功能. 定位功能 定位是一个很常用的功能,如一些地图软件打开之后如果用户允许软件定位的话,那么打开软件后就会自动锁定到当前位置,如果用户手机移动那么当前位置也会跟随着变化.要实现这个功能需要使用Core

iOS陆哥开发笔记(八) (GCD死锁及解决方案)

GCD导致死锁的原因和解决方案 所谓死锁,通常指有两个线程A和B都卡住了,并等待对方完成某些操作.A不能完成是因为它在等待B完成.但B也不能完成,因为它在等待A完成.于是大家都完不成,就导致了死锁(DeadLock). 在使用GCD的时候,我们会把需要处理的任务放到Block中,然后将任务追加到相应的队列里面,这个队列,叫做Dispatch Queue.然而,存在于两种Dispatch Queue,一种是要等待上一个执行完,再执行下一个的Serial Dispatch Queue,这叫做串行队列

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my

iOS开发UI篇—Modal简单介绍

iOS开发UI篇—Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展?出来 Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为? 二.代码说明 新建一个项目,在Application的代理中添加window和控制器. TXAppDelegate.m文件 1 #import "TXAppDelegate.h" 2 #import "TXOneViewController

iOS开发拓展篇-XMPP简单介绍

iOS开发拓展篇-XMPP简单介绍 一.即时通讯简单介绍 1.简单说明 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容 有许多的IM系统,如AOL IM.Yahoo IM. MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议 协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已

iOS开发多线程篇—多线程简单介绍

iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程

iOS开发UI篇-UIWindow简单介绍

iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow.也就说,没有UIWindow,就看不见任何UI界面 补充:UIWindow是创建的第一个视图控件(创建的第一个

iOS开发数据库篇—FMDB简单介绍

iOS开发数据库篇—FMDB简单介绍 一.简单说明 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比苹果自带的Core Data框架,更加轻量级和灵活 提供了多线程安全的数据库操作方法,有效地防止数据混乱 3.FMDB的github地址 https://github.com/ccgus/fmdb 二.核心类 FMDB有三个主要的类 (1)FMDa