LoginSignup
8
8

More than 5 years have passed since last update.

CoreDataエンティティクラスのプロパティの型 in Swift

Posted at

SwiftでCoreDataを扱う場合でも、Entityに対応したクラスを定義することに変わりはない。

import CoreData

// このクラスはObjective-C側から読み込まれるため、@objcをつける。
// ref. https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

@objc(ToDo)
class ToDo: NSManagedObject {

    @NSManaged var title: NSString
    @NSManaged var created: NSDate
    @NSManaged var modified: NSDate
    @NSManaged var repeat: NSNumber
}

ただ、この時に注意しなければいけないのが変数の型。
以下のように定義した場合、Stringは問題ないが、Intは0以外の値を保存しようとすると例外終了する。(現状、根本原因は分からず)

import CoreData

@objc(ToDo)
class ToDo: NSManagedObject {

    @NSManaged var title: String
    @NSManaged var created: NSDate
    @NSManaged var modified: NSDate
    @NSManaged var repeat: Int
}

Objective-Cから扱われるクラスは型もObjective-C側に寄せた方が安全かも?

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8