У меня есть класс в быстром файле cloud
. Я использую ссылку на этот class
в своем проекте, чтобы вызвать два из его методов. Но я получаю следующую ошибку, и приложение вылетает;Ошибка: непризнанный селектор при использовании ссылки на класс
NSForwarding: warning: object 0x7fc938717160 of class 'App.Cloud' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[App.Cloud persistentStoreWillChange]
(lldb)
Кто-нибудь знает, кто я могу это решить и почему это происходит? PS: Ошибка появляется только при установке приложения и запуске в первый раз. Если я уйду и перезапустите, он не появится, однако он не будет выполнять методы.
Heres мой класс,
class Cloud {
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
func persistentStoreWillChange (notification:NSNotification) {
self.moc!.performBlock {() -> Void in
if self.moc!.hasChanges {
var error:NSError? = nil
self.moc!.save(&error)
if error != nil {
println("Save error: \(error)")
} else{
// drop any manged object refrences
self.moc!.reset()
}
}
}
}
func persistentStoreDidChange() {
println("Store Did Change")
}
//Refresh Data
func recieveChanges (notification:NSNotification){
self.moc!.performBlock {() -> Void in
self.moc!.mergeChangesFromContextDidSaveNotification(notification)
}
}
//View Will Appear
func addObsevers() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "persistentStoreDidChange:", name: NSPersistentStoreCoordinatorStoresDidChangeNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("persistentStoreWillChange:"), name:NSPersistentStoreCoordinatorStoresWillChangeNotification, object: moc!.persistentStoreCoordinator)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("recieveICloudChanges:"), name:NSPersistentStoreDidImportUbiquitousContentChangesNotification, object: moc!.persistentStoreCoordinator)
}
//View Will Dissapear
func removeObservers() {
NSNotificationCenter.defaultCenter().removeObserver(self, name: NSPersistentStoreCoordinatorStoresDidChangeNotification, object: nil)
NSNotificationCenter.defaultCenter().removeObserver(self, name: NSPersistentStoreCoordinatorStoresWillChangeNotification, object: moc!.persistentStoreCoordinator)
NSNotificationCenter.defaultCenter().removeObserver(self, name: NSPersistentStoreDidImportUbiquitousContentChangesNotification, object: moc!.persistentStoreCoordinator)
}
}
ссылка Класс в View Controller:
let iCloudSync = Cloud()
override func viewWillAppear(animated: Bool) {
iCloudSync.addObsevers()
loadData()
}
override func viewWillDisappear(animated: Bool) {
iCloudSync.removeObservers()
}
На какой линии ??? – luk2302
Не совсем уверен, что получаю смешанные результаты при использовании контрольных точек, но, глядя на ошибку, я пропустил следующую строку; 'Unrecognized selector - [Jottit.Cloud persistentStoreDidChange]' – RileyDev
Сделал изменения в цитате блока ошибок в моем вопросе для полной ошибки вывода на консоль. – RileyDev