一、分析置顶歌曲代码
具体代码分析地址:http://www.devdiv.com/iOS_iPhone-剪切音频C层分析-thread-194538-1-1.html
1、使用 presentModalViewController可创建模式对话框,可用于视图之间的切换
2、attribute ((visibility(“default”))) 声明的符号。这是一种非常简洁的方式,用于通知 g++ 没有显式地标注可见属性的每项声明,其可见性都是隐藏的。使用 dlsym 提取一个隐藏的符号将会返回 NULL
3、
NSURL *assetURL = [song valueForProperty:MPMediaItemPropertyAssetURL]; //获取歌曲地址
AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL:assetURL options:nil]; //初始化视频媒体文件
4、
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserdomainMask,YES) 获取应用程序私有目录
NSHomeDirectory() 得到是根目录
5、
- (id)objectAtIndex:(int)index; // 得到索引为i的对象
6、
[NSFileManger defaultManger] 实例化
NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)
7、
fileURLWithPath是将str转化为文件路径,可以自动的去掉“/”。而URLWithString仅仅是将url2转化成NSURL类型
8、
CMTimeGetSeconds 返回float64格式秒数
9、
CMTimeMake(第几帧, 帧率)
10、
CMTimeRangeFromTimeToTime 返回时间差
11、
void (^animations)(void )” block 语句块,一个回调方法
12:
NSClassFromString 将NSString转换成一个Class,如果不存在,返回一个nil。
[[NSClassFromString(@”MyClass”) alloc] init]; 优化版
13:
NSStringFromClass 实例对象转化字符串
[NSClassFromString(NSStringFromClass([self class])) doSomeThing];
14:
UIResponder 一个可以接收触摸屏上的触摸事件的对象
触摸事件 motion事件,Remote 控制事件
1):触摸事件
– touchesBegan:withEvent: 当用户触摸到屏幕时调用方法
– touchesMoved:withEvent: 当用户触摸到屏幕并移动时调用此方法
– touchesEnded:withEvent: 当触摸离开屏幕时调用此方法
– touchesCancelled:withEvent: 当触摸被取消时调用此方法
2):iOS 3.0 + 开始支持motion事件,特别是摇动设备
– motionBegan:withEvent: 运动开始时执行
– motionEnded:withEvent: 运动结束时执行
– motionCancelled:withEvent: 运动被取消时执行
3):iOS 4.0 + 开始支持远程事件
– remoteControlReceivedWithEvent: