0
が返されるので、オブジェクトを渡す再利用可能な関数を作成しようとしています(オブジェクトクラスは3つです)。 、コードは私のところでvalue of type object has no member id
を吠える。これは、コードの行でこれを示していますarrayFromDB.append(items.id)
ObjectをRealmに渡して再利用可能な関数を作成しようとすると、エラー
私のオブジェクトのすべての3がID
func deleteUnwanted (fromJSON:[Int], db: Object.Type) {
var arrayFromDB:[Int] = [Int]()
let realm = try! Realm()
let getFromDB = realm.objects(db)
for items in getFromDB {
arrayFromDB.append(items.id)
}
... other stuff
(エラーを与えるものではありません)機能
self.deleteUnwanted(self.catstringJson,db: LocalDataFolders.self)
への呼び出し自体が含まれているので、それは奇妙です
オブジェクトクラス
class LocalDataF: Object {
dynamic var id:Int = 0
...
override static func primaryKey() -> String? {
return "id"
}
}
class LocalDataC: Object {
dynamic var id:Int = 0
...
override static func primaryKey() -> String? {
return "id"
}
}
class LocalDataA: Object {
dynamic var id:Int = 0
...
override static func primaryKey() -> String? {
return "id"
}
}
私はRealmの何も知りませんが、一般的な機能を望んでいるようです。そうであれば、 'Object.Type'を使って' func deleteUnwanted(fromJSON:[Int]、db:T.Type) 'と定義する必要があります。また、 'id'プロパティを持つ型やプロトコルを定義し、関数内の' id'にアクセスするためにジェネリックパラメータを制約する必要があります。 –
sgib
これを試してみると、 '' T.Type '型の値を期待される引数型' Object.Type''に 'let getFromDB = realm.objects(db) 'の行に戻せません。 型は常に私はそれを一般的にするべきかどうかは分かりません。それは3つの異なるオブジェクトを持つことができます。 – SoundShock
'func deleteUnwanted ...'を常にオブジェクトにすることを試みるかもしれませんが、 'id'プロパティを持つ型にキャストせずに' id'プロパティにアクセスすることはできません。 –
sgib