将视频保存到NSUserDefault

时间:2016-03-31 12:49:51

标签: ios objective-c nsuserdefaults

我想在NSUserDefaults中保存视频文件..我知道有一种方法可以通过setDeL在UserDefault中保存。如何在数组中添加URL?

3 个答案:

答案 0 :(得分:0)

在数组中添加URL,并将数组保存在NSUserDefaults

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

答案 1 :(得分: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    

答案 2 :(得分:0)

用户默认值是属性列表。根据{{​​3}},只有少数几种类型构建属性列表。

  • 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