我想在NSUserDefaults中保存视频文件..我知道有一种方法可以通过setDeL在UserDefault中保存。如何在数组中添加URL?
答案 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
支持NS
(Secure
)Coding
。