Я использую библиотеку c с объектом-c и вызываю объект-c в swift. вот код: 1. в HomeViewController.swiftNSNotificationCenter postNotificationName crash in swift и object-c, почему?
override func viewWillAppear(animated: Bool) {
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector(), name: "doAddEffectsFinished", object: nil)
}
override func viewWillDisappear(animated: Bool) {
NSNotificationCenter.defaultCenter().removeObserver(self, name: "doAddEffectsFinished", object: nil);
}
В файле Fmodwrapper.mm,
-(void) doAddEffects
{
inpath = [[[NSBundle mainBundle] pathForResource: @"modulator22"
ofType: @"wav"] UTF8String];
[[NSNotificationCenter defaultCenter] postNotificationName:@"doAddEffectsFinished" object:nil];
}
В HomeViewController.swift, я использую такой код:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int){
fmodWrapper.addEffects(0)
}
}
Когда я запускаю код, он будет разбит на fmodwrapper.mm, на линии
[[NSNotificationCenter defaultCenter] postNotificationName:@"doAddEffectsFinished" object:nil];
и добавить ниже код в fmodwrapper.mm, но он не работает
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
пожалуйста, помогите мне, друзья мои, спасибо.
Было бы проще, если бы вы выложили ошибку. Почему у вас есть «Selector()» вместо имени функции? – Caleb
Какой у вас обработчик для уведомления? Где вы определяете 'Selector()', он должен быть фактическим методом для этого объекта. –
Спасибо, это моя ошибка –