我在XCode中遇到错误:
找到名为'setEnabled'的多个方法,其中包含不匹配的结果,参数类型或属性
我在AppDelegate.m中使用以下代码:
#import "BluetoothManager.h"
Class BluetoothManager = objc_getClass( "BluetoothManager" ) ;
id btCont = [BluetoothManager sharedInstance] ;
[btCont setEnabled:!currentState] ;
答案 0 :(得分:2)
如果您要导入BluetoothManager.h
,那么您可以在编译时解决它,请调整代码说:
#import "BluetoothManager.h"
Class BluetoothManagerClass = objc_getClass( "BluetoothManager" );
BluetoothManager *btCont = [BluetoothManagerClass sharedInstance];
[btCont setEnabled:!currentState];
您是在尝试支持新课程,还是在较旧的iOS上运行?
回应Q1:“简单”版本,如果你不想做任何棘手的事情,就是放弃提供动态灵活性的objc_getClass
,而不是经常需要的
#import "BluetoothManager.h"
BluetoothManager *btCont = [BluetoothManager sharedInstance];
[btCont setEnabled:!currentState];
这假定:
BluetoothManager
在“BluetoothManager.h”+sharedInstance
上声明(和定义)了一个类方法(遵循常见的Objective-C命名约定,我将重命名为+sharedBluetoothManager
)-setEnabled: