Я играю с этим несколько часов, и я застрял. Я пытаюсь сохранить список избранных объектов в NSUserDefaults с помощью Monotouch. Я считаю, что я на правильном пути, но я просто не могу совсем понимаю ... вот мои объекты модели:Сохранение пользовательского списка в NSUserDefaults с Monotouch
public class Favorite {
public Favorite(){}
public string Description {get;set;}
public Song Song {get;set;}
}
public class Song {
public Song(){}
public string Name {get;set;}
public string Artist {get;set;}
}
Далее, я хочу, чтобы сохранить список Избранных, который выбрал пользователь. Из того, что я прочитал, я могу использовать NSArray для сохранения списка элементов в NSUserDefaults. Итак, как мне перейти из списка избранного в NSArray из Избранного ... Я не смог найти документацию по этому вопросу. Вот моя обложка настроек:
public class Settings {
private static string _favoritesKey = "favorites";
public static IList<Favorite> Favorites {get;set;}
public static void Add(Favorite favorite){
Favorites.Add(favorite);
}
public static void Remove(Favorite favorite){
Favorites.Remove(favorite);
}
public static void Read()
{
var tempFavorites = (NSArray)NSUserDefaults.StandardUserDefaults[_favoritesKey];
if(tempFavorites == null){
Favorites = new List<Favorite>();
}
else {
for(uint i=0;i<tempFavorites.Count;i++){
var fav = tempFavorites.ValueAt(i); //returns IntPtr
// do something to convert to Favorite
// Favorites.Add(converted_favorite);
}
}
}
public static void Write()
{
var tempArray = Favorites.ToArray();
// convert to NSObject[]
NSUserDefaults.StandardUserDefaults[_favoritesKey] = NSArray.FromNSObjects(converted_array);
NSUserDefaults.StandardUserDefaults.Synchronize();
}
}
Я нахожусь на правильном пути? Похоже, все, что мне нужно сделать, это выяснить, как конвертировать в NSObjects и из него. Кроме того, если я сохраняю эти пользовательские объекты в NSUserDefaults, они должны быть сериализуемыми? Большое спасибо!
Я не пошел так, как вы предлагали, но ваше решение ответило на вопрос, который я поставил ... спасибо. –