2016-03-31 124 views
0

我想保存視頻文件在NSUserDefaults ..我知道有一種方法,我們可以通過setURL保存在UserDefault.How在數組中添加URL?將視頻保存到NSUserDefault

+0

您無法將視頻文件添加到'NSUserDefaults'。您可以向視頻添加網址,但不能添加文件本身。 –

回答

0

添加網址陣列,並保存在數組中NSUserDefaults的

NSArray *urlArray = @[url1, url2, url3]; 
    [[NSUserDefaults standardUserDefaults] setObject:urlArray forKey:@"UrlArrayKey"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
+0

http://stackoverflow.com/questions/7411508/nsurl-is-not-stored-as-absolutestring-in-nsuserdefault請參考上面的鏈接,並繼續回答..感謝您的回覆 –

0
//store urls in NSUserDefaults 
NSArray *arrayURLsToStore = [NSArray arrayWithObjects:@"link1", "link2", nil]; 

[[NSUserDefaults standardUserDefaults] setObject:arrayURLsToStore forKey:@"URLs"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

//get urls from NSUserDefaults 
NSArray *arrURLsRetrived = [[NSUserDefaults standardUserDefaults] objectForKey:@"URLs"]; 
NSString *urlString = [NSString stringWithFormat:[arrURLsRetrived objectAtIndex:0]]; 
NSURL *youURL = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

//now you can use URL1  
+0

如果我在URL中存儲NSUSERDEFAULT有崩潰「嘗試插入非屬性值」 –

+0

將URL轉換爲NSString,然後存儲在UserDefault中。 –

+0

我也試過,當我轉換爲NSString和檢索它回到NSURL視頻文件不顯示..但URL存在 –

0

用戶默認值是一個屬性列表。根據specifications只有幾種類型構建屬性列表。

  • NSArray
  • NSDictionary
  • NSString
  • NSNumber
  • NSData
  • NSDate

類別(陣列字典)是屬性列表當且僅當他們所有的成員都是財產清單。

正如你從鏈接中看到的,NSURL沒有屬性列表。但是你可以的NSURL一個實例轉換成NSString(URL字符串)在寫入時一個實例...:

NSString *URLString = [URL absoluteString]; 

...這存入數組(停留是一個屬性列表,因爲NSString實例是財產列表)。

在讀時間,你可以拿出從數組中的字符串,並將其轉換回的NSURL一個實例:

NSURL* URL = [NSURL UrlWithString:URLString]; 

另一種方法是的NSURL實例轉換成NSData和後面的實例。這是可能的,因爲NSURL支持NSSecureCoding

+0

檢查,但UserDefault有一個屬性[[NSUserDefaults standardUserDefaults] setURL]; –

+0

你的意思是'-setURL:forKey:'('NSUserDefaults')?您是否閱讀過文檔,該方法的用途是什麼?恰恰是我在我的回答中描述的。 –

+0

我的要求是將視頻保存在NSUserDefault中..您的答案已將我的網址提取給我,但不顯示視頻內容 –