NSNotificationCenter postNotificationName 在 swift 和 object-c 中崩溃,为什么?
NSNotificationCenter postNotificationName crash in swift and object-c, why?
我使用带有 object-c 的 c 库,并在 swift 中调用 object-c。这是代码:
1. 在 HomeViewController.swift
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() 更改为 Selector("doAddEffectsFinished")
我使用带有 object-c 的 c 库,并在 swift 中调用 object-c。这是代码: 1. 在 HomeViewController.swift
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() 更改为 Selector("doAddEffectsFinished")