[英]iOS Xcode How to persist data with custom objects containing custom objects?
Android 開發人員和 iOS 新手在這里。 我有一個要遷移到 iOS 的應用程序。 我正在同時學習 Xcode 和 Swift,所以請保持溫和! :)
我的問題是我只想保存/檢索如下類(在 Java 中):
public class CardDeck implements Parcelable{
private ArrayList<Profile> cards;
private int location;
public CardDeck(){
this.cards = new ArrayList<>();
this.location = 0;
//this.numCards = 0;
}
public CardDeck(ArrayList<Profile> cards) {
this.cards = cards;
this.location = 0;
//this.numCards = cards.size();
}
protected CardDeck(Parcel in) {
cards = in.createTypedArrayList(Profile.CREATOR);
//numCards = in.readInt();
location = in.readInt();
}
}
我想保存/檢索包含配置文件數組的 CardDeck 對象。 我最初的閱讀讓我覺得你不能用 UserDefaults 或 NSCoding 來做到這一點,因為 plist 文件不能包含像 Profile 這樣的自定義數據類型。 我做對了嗎? UserDefaults 適用於標准數據類型(bool、int、String 等)並且 NSCoding 可以處理自定義對象,例如 CardDeck 但 CardDeck 只能具有標准數據類型的成員。
你們專業人士如何處理我的問題? 核心數據?
我在 Android 中使用SharedPreferences
和Gson.toJson(cardDeck)
處理了這個問題。
謝謝閱讀!
CoreData 是一個建立在 SQLLite 之上的 ORM。 聽起來對於你想要的東西來說可能有點矯枉過正。
您可以將您的類聲明為 Codable:
類 CardDeck : Codable { }
然后只需使用 JSONEncoder、JSONDecoder 將它們編碼和解碼為 Data 對象,這些對象可以轉換為 String 然后存儲在文件或用戶首選項中。 CardDeck 中的任何自定義類型也需要是 JSONCodeable。
JSONCodeable 是一種協議(即 Java 術語中的接口)並且可以作為現有類的擴展來實現(在 Java 中不能這樣做,在 C# 中可以這樣做)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.