sqliteiOS UIFileSharingEnabled

一、让iOS App通过iTunes举办文件互换Documents

让iOS App通过iTunes进行文件沟通

有一对App须要经过行使iTunes让用户上传和下载文档。要让iOS程序辅助iTunes文件调换其实很简单,

只要求在先后的sqlite,Info.plist里伸张一个键:UIFileSharingEnabledApplication
supports iTunes file sharing),赋值YES

sqlite 1

如此,编译之后进行机上运行的时候,连接装置到iTunes,就能展开文件沟通了。

sqlite 2

要是是在iOS
Simulator中开展测试,可以把公文放到应用程序的“用户目录”的“
Documents”下。要了然用户目录在OSX下的路线,

可以NSLog(@”%@”, NSHomeDirectory());运转一下就知晓了,

用户家目录在OSX下的路径类似那么些:

/Users/venj/Library/Application Support/iPhone
Simulator/4.3.2/Applications/158C149B-FF57-4C62-AEDB-DFB7A3BD8AFB

自家做了一个概括的次序举办测试,在Simulator中运作的时候,把公文放到用户目录下,下图是用户目录在OSX下的内容,

把文件放到Documents下就可以了:

sqlite 3

然后在程序中测试文件有未能如愿被先后识别:

   

NSFileManager *manager = [NSFileManager defaultManager];   
NSString *dbPath = [[NSHomeDirectory()
stringByAppendingPathComponent:@”Documents”]
stringByAppendingPathComponent:@”db.sqlite”];

    if ([manager fileExistsAtPath:dbPath]) {       
self.navigationItem.title = @”Ready To Go”;    }    else {       
self.navigationItem.title = @”No DB File”;    }

下边是先后在添Gavin书前后的运转情况:

sqlite 4

 

二、App与iTunes文件传输的主意和对iOS App文件结构的印证

就好像许多iOS上边的播报器App一样,本文编写一个程序能够通过iTunes往里面放文件,比如编写一个音乐播放器程序,通过itune往里面放歌曲文件,然后通过这么些App来播放这首歌曲,首先我创制了一个无独有偶的SingleView程序,叫做FileShareDemo。上边是经过iTunes往App传输文件的截图:

sqlite 5

可以看来像GPlayer,AcePlayer播放器,视频资源通过那种艺术传输是很普遍的(很多苹果用户真正不晓得这么能够传输数据),那里自己创设了一个App叫做FileShareDemo,可以见到,也足以往里面拖拽数据,那里拖拽了一首歌2.VCD,可是默许意况下创办的App是不得以出现在左侧栏的,要求按下图在plist里面加一行:

sqlite 6

接下去的做事是判定有没有导入进去,上边的代码我写在了viewdidload里:

 NSFileManager *manager=[NSFileManager defaultManager];

NSString *path=[[NSHomeDirectory()
stringByAppendingPathComponent:@”Documents”]
stringByAppendingPathComponent:@”2.mp3″];

if ([manager fileExistsAtPath:path]) {

showLabel.text=@”have file”;

}else {

showLabel.text=@”have no file”;

}

NSLog(@”NSHomeDirectory %@”,NSHomeDirectory());

 那里有几点要表达,首先NSHomeDirectory()打印出来是

/var/mobile/Applications/8F01293C-C02D-4EF8-A9F7-1A7B10944F33

本条是先后的途径,8F01293C-C02D-4EF8-A9F7-1A7B10944F33是各样App独特的标志,比如愤怒的鸟类会是另一串音信,具体干嘛的不知晓。然后自己在前面添加了/Documents和/2.VCD,通过[manager
fileExistsAtPath:path]来判断那些途径存不设有,用一个label打印出来。借使拖拽进去了可以观望label的始末是“have
file”,通进度序运行的label新闻方可知到/var/mobile/Applications/8F01293C-C02D-4EF8-A9F7-1A7B10944F33/Documents/2.mp5就是导入的文书的路线。

自此我们能够通过那段代码来播放歌曲:

 NSError* err;

player = [[AVAudioPlayer alloc]

initWithContentsOfURL:[NSURL fileURLWithPath:path]

error:&err ];

player.volume=0.7;

[player play];

前边的path直接在此地可以用。

下边再度补充一下文书的社团难题:

sqlite 7

每个程序都会包罗那多少个文件,Documents就是iTunes导入的文稿存储的地点,FileShareDemo是Xcode项目包,假诺由此Xcode往项目里放素材什么的都在此地,后多少个不明白有啥实际效果。

特意提醒:

假如app不关乎文档的上传和下载,Application supports iTunes file
sharing应设置为NO或删除此key,否则会被拒.

 

参照链接:

https://my.oschina.net/hmj/blog/112592

网站地图xml地图