Q
swift4
0
A
答えて
0
に保存された詳細を取得するデータベースのためのいくつかのサンプルコードスニペットを共有:
下記参照Coredataスタッククラスの作成をVARのcoreDataStack:CoreDataStack = CoreDataStack()// appDelegate
class Stack
{
lazy var managedObjectModel: NSManagedObjectModel = {
let modelUrl = Bundle.main.url(forResource: "Model", withExtension: "momd")!
return NSManagedObjectModel(contentsOf: modelUrl)!
}()
lazy var peristentStoreCoordinator: NSPersistentStoreCoordinator = {
let coordinator: NSPersistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let applicationDocumentsDirectory: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last!
let persistentStoreUrl: URL = applicationDocumentsDirectory.appendingPathComponent("Model.sqlite")
do {
try coordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: persistentStoreUrl, options: nil)
}
catch {
fatalError("Persistent store error! \(error)")
}
return coordinator
}()
lazy var managedObjectContext: NSManagedObjectContext = {
let managedObjectContext: NSManagedObjectContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
managedObjectContext.persistentStoreCoordinator = self.peristentStoreCoordinator
return managedObjectContext
}()
func saveContext() {
if self.managedObjectContext.hasChanges {
do {
try self.managedObjectContext.save()
}
catch {
fatalError("There was an error saving the managed object context \(error)")
}
}
}
}
に行を追加ステップ2:作成エンティティ ステップ3:ManagedObjectModelSubclass作成 - エディタ - > ManagedObjectModelSubclass ステップ4:クラスの輸入コアデータとコードの下に追加
var person = [Person]() //[Person] here denote subclassclass name
var appDelegate = UIApplication.shared.delegate as! AppDelegate
let personEntity: NSEntityDescription? = NSEntityDescription.entity(forEntityName: "EntityName", in: self.appDelegate.coreDataStack.managedObjectContext)
if personEntity != nil {
let person1: Person = Person(entity: personEntity!, insertInto: self.appDelegate.coreDataStack.managedObjectContext)
person1.name = "name"
person1.country = "US"
person1.age = "26"
person1.place = "NewYork"
}
ステップ5:データの使用をフェッチするためコード
var persons: [Person] = [] // subclass name
var appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
var listdata = [ModelClass]() // create a modelclass object
func fetchDemoData() {
let fetchRequest: NSFetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "EntityName")
do {
if let results = try self.appDelegate.coreDataStack.managedObjectContext.fetch(fetchRequest) as? [NSManagedObject] {
let personList: [Person]? = results as? [Person]
if personList != nil {
self.persons = personList!
for eachData in persons {
let name = eachData.name as String!
let username = eachData.age as String!
let email = eachData.country as String!
let address = eachData.place as! [String : Any]
self.listdata.append(ModelClass(name: name!, username: username!,email : email!,address : address))
}
//self.tableview.reloadData()
}
}
}
catch {
fatalError("There was an error fetching the items")
}
}
+0
コードがクラッシュし、多くの感嘆符や疑問符を使用しています。フェッチを '[NSManagedObject]'にキャストするのはなぜですか?なぜなら、それが(オプションではない) '[Person]' – vadian
関連する問題
- 1. はswift4
- 2. LTMorphingLabel Swift4エラー
- 3. Swift4/JSON/Decode
- 4. sort coreData fetch(swift4)
- 5. Swift4 Playgrounds Caesar Cipherエラー
- 6. Swift4 initWithArray相当品
- 7. 使用例えば「JSONEncoder」swift4
- 8. navigationBar上のsegmentedControl swift4/xcode9/ios11
- 9. Swift4 JSON解析Alamofireセット構造体
- 10. Swift4 jsonスキーマで辞書をデコードする
- 11. Swift4でのHTTPヘッダーとパラメーターの追加
- 12. Swift4で配列をデコードするCodable
- 13. アルファベット順のソート構造体(swift4)
- 14. Swift4でセグメント制御を行うには?
- 15. Swift4 issues:Nslayoutconstraintをプログラムで変更する
- 16. seguedデータを別のviewcontrollerに格納する(swift4)
- 17. Swift4のURLSessionとJSONDecodeのデータがありません
- 18. print struct(swift4)から[]を削除するには
- 19. swift4でクラスをコード化可能なプロトコルに適合させる
- 20. iOS11、swift4でMPMusicPlayerControllerの再生を曖昧に使用する
- 21. 空のアーカイブされたXcodeファイルを削除する方法(swift4)
- 22. Xcode9/Swift4でもUnrecognizedSelectorはどのように可能ですか?
- 23. Swift4 ViewControllerサブビュー内でイベントを発生させない
- 24. ローカルHTMLを読み込むときにSwift4アプリがクラッシュする
- 25. Swift4 Condable:プロパティを除外できません
- 26. カメラのオーバーレイビューに画像を追加する方法(swift4)
- 27. 辞書intと文字列が動作しない(swift4)
- 28. Swift4のGooglePlacePickerでナビゲーションバーをカスタマイズする方法は?
- 29. CocoaPods Swift3とSwift4が混在したポッドを使用する
- 30. swift4のタイムゾーンから日付と時刻を取得
質問がありますか? – Paulw11
try https://www.raywenderlich.com/173972/getting-started-with-core-data-tutorial-2 –
Stackoverflowはコード作成サービスではありません。 [Core Data Programming Guide](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/CreatingObjects.html)をお読みください。 – vadian