初始化期间存储到 'beaconsData' 的值永远不会被读取

Value stored to 'beaconsData' during its initialization is never read

我收到有关标记行的 "Value stored to 'beaconsData' during its initialization is never read" 消息,但我不太明白为什么会这样。

- (void)locationManager:(KTKLocationManager *)locationManager didRangeBeacons:(NSArray *)beacons
{
    //NSLog(@"Ranged beacons count: %lu", [beacons count]);
    _beaconKontaktArr = [[NSMutableArray alloc] init];

    for (CLBeacon *beacon in beacons) {
        NSDictionary *beaconsData = [[NSDictionary alloc] init]; //problem is there
        KTKBeacon *beaconData = [self _getDataForBeacon:beacon];
        if (beaconData)
        {
            beaconsData = @{@"beacon": beacon, @"ktkBeacon": beaconData};

            [_beaconKontaktArr addObject:beaconsData];
        }
    }
}

您在定义从未使用过的变量期间向 beaconsData 添加了一个对象,因为您随后在 if 循环中用新数据覆盖了空字典。变量应该移动到循环内部。

- (void)locationManager:(KTKLocationManager *)locationManager didRangeBeacons:(NSArray *)beacons {
    _beaconKontaktArr = [[NSMutableArray alloc] init];

    for (CLBeacon *beacon in beacons) {
        KTKBeacon *beaconData = [self _getDataForBeacon:beacon];
        if (beaconData) {
            NSDictionary *beaconsData = @{@"beacon": beacon, @"ktkBeacon": beaconData};
            [_beaconKontaktArr addObject:beaconsData];
        }
    }
}