在MAC上打開iTunes,在應用程序一欄,默認界面爲:
當連接iPad設備後,iTunes界面以下,在面板工具條的右側會顯示iPad當前已鏈接到Mac上
app
咱們看到出現了一個名爲「文件共享」的分類。上面很清楚的標明瞭這個分類的做用是什麼,左側的列表是iPad設備上安裝的全部應用程序,右側列表則是支持iTunes文件共享的App的Documents目錄。以蘋果的Keynote爲例,當咱們保存一個文檔到iTunes時,Keynotye會講文件寫入到本身的Documents目錄下,也就是咱們在面板上看到的右側列表。咱們能夠直接從MAC上拖文件到該右側列表,或者從右側列表選中文件直接拖到MAC上,這樣便簡單的完成了所謂的iTunes與App的文件共享。能夠經過兩個按鈕完成一樣的功能。如圖:
咱們新建一個簡單的DEMO工程來把整個流程走一遍,工程名爲FileShareWithITunesDemo
在工程的Info.plist文件中添加支持iTunes文件共享的Key,並將值設爲YES,
以後將DEMO工工程發佈到iPad設備上,在iTunes的面板上咱們能夠看到以下圖:
如今左側列表中有了咱們的工程對應的APP,接下來在mainStoryboard中添加簡單的描述和兩個按鈕:
以後爲兩個按鈕創建action的outline,代碼以下 框架
// 對應第一個按鈕 - (IBAction)logFilePathInDocumentsDir:(id)sender { NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSDirectoryEnumerator *dirEnum = [fileManager enumeratorAtPath:docsDir]; NSString *fileName; while (fileName = [dirEnum nextObject]) { NSLog(@"FielName : %@" , fileName); NSLog(@"FileFullPath : %@" , [docsDir stringByAppendingPathComponent:fileName]) ; } } // 對應第二個按鈕 - (IBAction)createImageFieldToDocuments:(id)sender { NSFileManager *fileManager=[[NSFileManager alloc] init]; NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"]; NSString *imageFileName = [docsDir stringByAppendingPathComponent:@"myImage.png"] ; UIImage *image = [self generateImage]; [fileManager createFileAtPath:imageFileName contents:UIImagePNGRepresentation(image) attributes:nil] ; } // 建立一個簡單的UIImage對象並做爲圖片文件內容 - (UIImage*)generateImage { UIGraphicsBeginImageContextWithOptions(CGSizeMake(320, 200), NO, 0.0) ; CGContextRef ctx = UIGraphicsGetCurrentContext() ; CGRect imageRect = CGRectMake(0.0, 0.0, 320, 200) ; [[UIColor redColor] setFill] ; CGContextFillRect(ctx, imageRect) ; UIImage *image = UIGraphicsGetImageFromCurrentImageContext() ; UIGraphicsEndImageContext() ; return image ; }
以後點擊第一個按鈕,輸出Documents路徑下的全部文件名到控制檯 工具