运行[[CBCentralManager alloc] initWithDelegate:self queue:nil]时出现错误

时间:2019-06-04 02:02:56

标签: objective-c xcode core-bluetooth objective-c++

我决定在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”。

0 个答案:

没有答案