Найти ближайший маяк каждую секунду с помощью RSSI в Objective-C - PullRequest
0 голосов
/ 29 июня 2019

В Stack Overflow я видел ответ, чтобы найти ближайший маяк ( Swift найти ближайший маяк по rssi ).

Здесь я попытался с точностью найти ближайший в Objective-C. Мое приложение находит маяк каждую секунду, что точность времени не работает, находя самый близкий должным образом. По его словам, RSSI будет обновляться каждые 1 сек. Поэтому я хотел бы отфильтровать ближайший маяк с помощью RSSI. Я преобразовал ваш код Swift в Objective-C, но он не работает нормально.

Вот код Swift:

//Swift code
var closestBeacon: CLBeacon? = nil
for beacon in beacons {
    if beacon.rssi < 0 && closestBeacon != nil && beacon.rssi > closestBeacon!.rssi {
        closestBeacon = beacon as? CLBeacon
    }
}

Вот код Objective-C, который я преобразовал, не работает:

CLBeacon *closest = nil;

for (CLBeacon *beacon in beacons) {

    if (beacon.rssi < 0 &&  closest != nil && beacon.rssi > closest.rssi) {

        closest = beacon;

    }
}

Вот, пожалуйста, сделай меня идеальным, где я делаю неправильно.

1 Ответ

0 голосов
/ 29 июня 2019

В обеих версиях кода есть ошибка, как подсказывает @ paulw11.Так как я написал эту ошибку в ответ на другой вопрос, здесь есть исправление:

Swift

var closestBeacon: CLBeacon? = nil
for beacon in beacons {
    if closestBeacon == nil || beacon.rssi < 0 && beacon.rssi > closestBeacon!.rssi {
        closestBeacon = beacon as? CLBeacon
    }
}

Objective-C

CLBeacon *closestBeacon = nil;

for (CLBeacon *beacon in beacons) {

    if (closestBeacon == nil || beacon.rssi < 0 && beacon.rssi > closest.rssi) {

        closestBeacon = beacon;

    }
}

Я исправил ошибку в оригиналепост тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...