我决定在IOS上处理蓝牙,并立即收到一个我无法理解且无法在Internet上找到解决方案的错误。
通过注释代码,我意识到错误是由以下行引起的:“ centralManager = [[[CBCentralManager alloc] initWithDelegate:self queue:nil];“
BT.h:
#import <UIKit/UIKit.h>
#import <CoreBluetooth/CoreBluetooth.h>
@interface BT : UIViewController <CBCentralManagerDelegate, CBPeripheralDelegate>
{
CBCentralManager *centralManager;
CBPeripheral *discoveredPeripheral;
NSMutableData *data;
}
@end
BT.mm:
#import "BT.h"
@implementation BT
-(id)init
{
if (self = [super init])
{
centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
data = [[NSMutableData alloc] init];
}
return self;
}
@end
我收到以下编译器错误:“链接器命令失败,退出代码为1(使用-v查看调用)”
如果注释掉“ centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];”行,则项目将编译而不会出错。
更新:
我意识到,如果您从“构建设置”->“有效架构”中删除armv7,该错误将消失,但是还会出现另一个错误。我认为删除armv7的体系结构是不切实际的,因此我们需要了解发生第一个错误的位置。
问题已解决
您必须在项目中添加“ CoreBluetooth.framework”。