xml被plist取代了 数据库被coredata取代了
一、Core Data 高级补充
1. Core Data 本质是什么?操作数据库的数据
ORM
Object Relationship Mapping
对象关系映射解决的问题是->对象 和 数据库之间的关系
数据库: Database
专门用于存储、查询、增删改数据的地方
从类型上分:
关系型(最广泛)
字典型
关系型数据库:
用表去表达一个类型的数据,一个表里有很多条数据,每条数据的格式是一样的
CREATE TABLE Message {
boolean fromMe
INT type
VARCHAR(30) content
DATETIME time
}
SQL
结构化查询语言
用于查询
SELECT * from Message
where fromMe = true
ordered by time
SQL(字符串)
-----------> Database
字符串<-----------
数据库本身应该是和操作它的编程语言不相关
MySQL 很简单很方便 - java / php
SQLite 专门针对移动设备
SQL server 微软出的 C C++ C# VB
ORACLE 大型数据库
Sliverlight -> Flash
WPF -> Flex
-> MXML
Window
NavigationWindow
Line
2. 版本
当你修改coredata的数据模型xcodedatam
出现新版本的数据结构
TRMessage
type fromMe content
type fromMe content createdTime readTime
Core Data Migration
帮助你比较两个数据模型的区别
手机已经安装并且运行的数据模型 和
新版本程序带过来的新的数据模型
3. 删除
单实体 删除很简单
多实体 删除很变态
relationship中deleteRule属性解析:
Nullify 置空 删除群的时候 会删除掉 从群指向人的指针 那么 人指向群的引用置空
Cascade 如果删除掉文件夹那么文件夹里的所有东西也就不再了。也相当于 级联删除 在删除板块 会删除掉版块->帖子 帖子也删了
Deny 删除父版块时 如果发现有子版块 则删除不成功
4. 深化Context
Managed Object Context 跟查询相关的 栅栏
Persistent Store Coordinator
Persistent Object Store 跟存储相关的 圈
二、 音频
导入AVFoundation框架
Audio & Video Foundation
创建AVAudioPlayer 音频播放器
常用属性:
play 播放
pause 暂停
valume 音量
currentTime 当前时间
duration 歌曲总时间
QQMusic
1. 点击播放能播放
滑动进度条能更改歌曲播放进度
滑动音量条能修改歌曲音量
2. 支持封面
获取封面代码:
//元数据 Metadata NSURL * fileURL = [NSURL fileURLWithPath:path]; AVURLAsset * mp3Asset = [AVURLAsset URLAssetWithURL:fileURL options:nil]; for (NSString * format in [mp3Asset availableMetadataFormats]){ for (AVMetadataItem * item in [mp3Asset metadataForFormat:format]){ NSString * key = item.commonKey; id map = item.value; if ([key isEqualToString:@"artwork"]) { NSData * data = [map objectForKey:@"data"]; self.imageView.image = [UIImage imageWithData:data]; } else { NSLog(@"\n%@:%@", key, item.stringValue); } } }
点击上下切 能换歌 使用currentTime
歌曲音乐的路径是从TMusic对象中的path/filename
属性中拼凑字符串获取的
播放当前歌曲结束后,能够自动跳转到下一首歌播放,这里使用到代理中的一个方法:
遵守协议 AVAudioPlayerDelegate
self.player.delegate = self;
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
NSLog(@"播放完成");
}
如果自动跳转的时候,当前页面是播放列表页面/当前的组页面
你的小绿条(正在播放的提示)需要变换位置
3. 视频播放
导入MediaPlayer.framework框架
- (IBAction)tap:(id)sender { NSURL *url = [[NSBundle mainBundle] URLForResource:@"product-design-animation-cn-20130712_848x480" withExtension:@"mp4"]; self.player = [[MPMoviePlayerController alloc] initWithContentURL:url]; self.player.view.frame = self.view.bounds; [self.view addSubview:self.player.view]; [self.player play]; self.player.fullscreen = YES;// 全屏 // MPMoviePlayerWillExitFullscreenNotification : 退出全屏前 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(close:) name:MPMoviePlayerWillExitFullscreenNotification object:self.player]; } -(void)close:(id)sender{ [self.player.view removeFromSuperview]; [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerWillExitFullscreenNotification object:self.player]; }
单词、
Migration 迁移 Mai3 Ge. Rui1 Shen.
07-IOSCore - CoreData补充、音频视频,布布扣,bubuko.com
原文:http://www.cnblogs.com/yangmx/p/3583129.html