簡體   English   中英

為什么我的代表從未打電話過?

[英]Why is my delegate never called?

我正在嘗試將iPhone 7 Plus變成iBeacon以進行測試

我正在使用下面的代碼,但從未調用我的代表,因此它不會啟動廣告

- (IBAction)adminViewBeaconSwitchToggled:(id)sender {

    NSUserDefaults *tillUserDefaults = [NSUserDefaults standardUserDefaults];

    if(_adminViewBeaconSwitch.isOn) {
        [tillUserDefaults setInteger:1 forKey:@"beaconIsOn"];
        if ([NWTillHelper isDebug] == 1) {
            NSLog(@"iBeacon Mode: ON");

            NSUUID *proximityUUID = [[NSUUID alloc] initWithUUIDString:@"39876A4B-43B2-4BE8-9A9C-41BAE913D56A"];

            CLBeaconRegion *beaconRegion = [[ CLBeaconRegion alloc] initWithProximityUUID:proximityUUID identifier:@"me.netwizards.office"];

            _beaconPeripheralData = [beaconRegion peripheralDataWithMeasuredPower:nil];

            _peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:nil queue:nil];

            //[peripheralManager startAdvertising:beaconPeripheralData];
        }
    } else {
        [tillUserDefaults setInteger:0 forKey:@"beaconIsOn"];
        if ([NWTillHelper isDebug] == 1) {
            NSLog(@"iBeacon Mode: OFF");
        }
    }
}

- (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral {
    NSLog(@"iBeacon update state was triggered");

    switch (peripheral.state) {
        case CBManagerStatePoweredOn:
            NSLog(@"Powered on");
            [peripheral startAdvertising:_beaconPeripheralData];
            break;
        case CBManagerStatePoweredOff:
            NSLog(@"Powered Off");
            [peripheral stopAdvertising];
            break;
        case CBManagerStateUnsupported:
            NSLog(@"Device not supported");
            break;
        default:
            break;
    }
}

如何使它開始實際做廣告並確保已調用該代表?

在這里初始化CBPeripheralManager的對象

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:nil queue:nil];

您將nil傳遞給該代表,則您應將其作為self傳遞。

所以您更新的代碼應該是

_peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:nil];

另外,在您的類中定義委托CBPeripheralManagerDelegate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM