Hier ist ein konzeptionelles Beispiel dafür, wie das Ergebnis aussehen soll (Hinweis: Dies wird nicht so kompiliert, wie es ist; es dient nur der Veranschaulichung der Idee):
Code: Select all
import CoreAddress
@Model public class Address: CoreAddress {
// App-specific relationships
@Relationship(deleteRule: .cascade, inverse: \Department.address) var department: Department?
var person: Person?
}
@Model open class CoreAddress: Fetchable {
// Shared properties for all apps
public var city: String?
public var country: Country?
public var id: UUID?
public var label: String?
public var latitude: Double? = 0.0
public var longitude: Double? = 0.0
public var streetName: String?
public var streetNumber: String?
public var zipCode: String?
public var cityKey: String?
public var placeName: String?
public var furtherStreet: String?
public var district: String?
public var county: String?
required public init() { }
}
- befindet sich in einem Swift-Paket und enthält alle gemeinsam genutzten Eigenschaften.
Code: Select all
CoreAddress - Jede App fügt ihre eigenen Beziehungen hinzu (wie Abteilung oder Person).
- Verwenden Sie ModelContainer in jeder App, um sowohl freigegebene als auch app-spezifische Modelle einzubinden.
Problem:
Ich kenne nicht den besten Ansatz für:
- SwiftData-Modelle in einem Swift-Paket strukturieren.
- Vermeiden Sie doppelte Modelldefinitionen in mehreren Apps.
- Lassen Sie ModelContainer sowohl das gemeinsame Modell als auch app-spezifische Beziehungen erkennen.
Hat jemand Erfolg gehabt das gemacht? Welche Muster haben bei Ihnen funktioniert?
Mobile version