2015-08-04 3 views
1

Я использую библиотеку 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]; 
} 

пожалуйста, помогите мне, друзья мои, спасибо.

+1

Было бы проще, если бы вы выложили ошибку. Почему у вас есть «Selector()» вместо имени функции? – Caleb

+1

Какой у вас обработчик для уведомления? Где вы определяете 'Selector()', он должен быть фактическим методом для этого объекта. –

+0

Спасибо, это моя ошибка –

ответ

0

Это моя вина, просто изменить селектор() для выбора режима («doAddEffectsFinished»)

Смежные вопросы