2016-03-31 4 views
0

Я хочу сохранить видеофайлы в NSUserDefaults .. Я знаю, что мы можем сохранить с помощью setURL в UserDefault.Как добавить URL-адрес в массив?Сохранение видео в NSUserDefault

+0

Вы не можете добавить видео файлы в 'NSUserDefaults'. Вы можете добавить URL-адрес видео, но не файл. –

ответ

0

Добавить URL-адрес в массиве, а также сохранить массив в 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 pls ссылаются на приведенную выше ссылку и продолжают отвечать на вопросы. Спасибо за ответ –

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, видеофайл не отображается ..bat URL присутствует –

0

Значение по умолчанию пользователя является списком свойств. Согласно specifications, только несколько типов строят списки свойств.

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

Коллекция (словарный массив) является список свойств s, тогда и только тогда, когда все их члены являются списками свойств.

Как вы можете видеть по ссылке, NSURL не имеет списка свойств. Но вы можете преобразовать экземпляр NSURL в экземпляр NSString (URL строки) во время записи ...:

NSString *URLString = [URL absoluteString]; 

... и хранить это в массив (который остается быть список свойств, так как экземпляры NSString являются собственностью списки).

Во время чтения вы можете взять строку из массива и преобразовать его обратно в экземпляр NSURL:

NSURL* URL = [NSURL UrlWithString:URLString]; 

Другой способ заключается в преобразовании экземпляра NSURL в экземпляр NSData и обратно. Это возможно, поскольку NSURL поддерживает NS (Secure) Coding.

+0

, но UserDefault имеет свойство [[NSUserDefaults standardUserDefaults] setURL]; –

+0

Вы имеете в виду '-setURL: forKey:' ('NSUserDefaults')? Вы прочитали документацию, что делает этот метод? Именно то, что я описал в своем ответе. –

+0

Мое требование состоит в том, чтобы сохранить видео в NSUserDefault. Ваш ответ вызвал у меня URL-адрес, но он не отобразил видеоконтент. –

Смежные вопросы