swift_dynamicCastClassUnconditional проблемы в swift
У меня есть следующее NSManagedObject
в кратчайшие сроки:
import Foundation
import CoreData
public class User: NSManagedObject {
@NSManaged public var first_name: String
@NSManaged public var last_name: String
}
У меня есть класс, который предоставляет значение с помощью функции ниже:
- (id)getUserAtIndexPath:(NSIndexPath *)indexPath {
User *user = [self.fetchedResultsController objectAtIndexPath:indexPath];
return user;
}
Когда я вызываю эту функцию из Objective-C
класс, все отлично работает. Я называю так:
User *user = [self.userAccessor getUserAtIndexPath:indexPath];
И я могу продолжать оттуда. Когда я звоню с Swift
класс вроде так:
let user: User = self.userAccessor.getUserAtIndexPath(indexPath) as User
Я получаю swift_dynamicCastClassUnconditional
каждый раз. Что-то я делаю не так? Почему та же самая функция работает в Objective-C
и не Swift
? Я даже поставил точку останова и могу подтвердить Swift
вызов возврата является допустимой переменной! Кое как Swift
просто скучаю по нему.
Я попытался прочитать ниже на этом:
Есть что-то еще, что я пропускаю?
1 ответ
Я получил решение здесь:
Swift: точка останова в библиотеке CoreData
В основном я должен был поставить @objc(User)
прямо над кодом управляемого объекта. Так, как показано ниже:
@objc(User)
public class User: NSManagedObject {
@NSManaged public var first_name: String
@NSManaged public var last_name: String
}
Это решило проблему. Дело закрыто.