Неизвестное имя типа «ESTBeaconRegion»; Вы имели в виду «CLBeaconRegion»?

Проблема 1:

Я использую это руководство по оценке, чтобы создать собственное приложение Estimote. Однако появилась эта ошибка:

Неизвестное имя типа «ESTBeaconRegion»; Вы имели в виду «CLBeaconRegion»?

Как это решить?

Я включил заголовок, а также делегат

#import <EstimoteSDK/EstimoteSDK.h>

@interface AppDelegate () <UIApplicationDelegate,CLLocationManagerDelegate,ESTBeaconManagerDelegate>

Это мой подфайл

# Uncomment this line to define a global platform for your project
platform :ios, '7.0'

target 'Tabster' do
pod 'EstimoteSDK', '3.1.0'
end

Проблема 2. Почему платформа выделена красным?

введите здесь описание изображения

Обновление: (испытание примера приложения, предложенного Хуаном Гонсалесом) введите здесь описание изображения


person user1872384    schedule 15.04.2015    source источник
comment
Привет, Мустафа Ибрагим! Я уже включил #import ‹EstimoteSDK/EstimoteSDK.h› и #import AppDelegate.h в файл AppDelegate.m.   -  person user1872384    schedule 15.04.2015
comment
Основное внимание в этом вопросе уделяется EstimoteSDK, он не имеет ничего общего с appdelegate.   -  person user1872384    schedule 15.04.2015


Ответы (4)


Если вы хотите использовать «старое приложение» с новой оценкой SDK 3.0, я предлагаю вам прочитать руководство по миграции по этому адресу:

https://github.com/Estimote/iOS-SDK/blob/master/SDK_3_0_MIGRATION_GUIDE.md

ESTBeaconManager

Класс ESTBeaconManager остается, но с суженным функционалом. В текущей форме он отвечает за ранжирование и мониторинг устройств iBeacon, а также за рекламу iBeacon. В основном он охватывает функциональность CoreLocation, но с полезными помощниками, включая preventUnknownUpdateCount, AvoidUnknownStateBeacons и returnAllRangedBeaconsAtOnce (уже доступно в предыдущих версиях Estimote SDK).

Методы делегата работают с объектами CLBeacon (вместо ESTBeacon) и CLBeaconRegion (вместо ESTBeaconRegion). В качестве примера возьмем делегата ранжирования:

Синтаксис SDK 2.4:

- (void)beaconManager:(ESTBeaconManager *)manager
      didRangeBeacons:(NSArray *)beacons
             inRegion:(ESTBeaconRegion *)region
{
    if (beacons.count > 0)
    {
        ESTBeacon *firstBeacon = [beacons objectAtIndex:0];
    }
}

Синтаксис SDK 3.0:

- (void)beaconManager:(id)manager
      didRangeBeacons:(NSArray *)beacons
             inRegion:(CLBeaconRegion *)region
{
    if (beacons.count > 0)
    {
        CLBeacon *firstBeacon = [beacons objectAtIndex:0];
    }
}

Я надеюсь, что это поможет вам.

person mad_mask    schedule 16.04.2015
comment
Я следую устаревшему руководству на сайте Estimote. Спасибо за сравнение между sdk3.0 и 2.4. - person user1872384; 17.04.2015

У меня была такая же проблема с использованием библиотеки Estimote SDK. По неизвестной причине, если вы попытаетесь включить библиотеку SDK в новый проект Xcode, она, похоже, не загрузится. Даже если вы используете заголовки CoreLocation и CoreBluetooth.

Я предлагаю вам использовать пример кода, чтобы иметь проект, включающий библиотеки, а затем начать его модифицировать.

person Juan Gonzalez    schedule 15.04.2015
comment
Какой пример кода вы предлагаете? Я попытался включить этот код в @property(nonatomic, strong) ESTBeaconRegion *beaconRegion; Примеры приложения для маяков github.com/Estimote/iOS-SDK. Но это тоже не работает... Я добавил скриншот ошибки в свой вопрос выше. - person user1872384; 15.04.2015
comment
Однако приложение «Примеры» использует CLLocation вместо ESTBeaconRegion. - person user1872384; 15.04.2015
comment
Правильно, используйте проект Examples/beacon Objective C и измените его. В этом случае я использовал пример кода Proximity, не забудьте указать свои учетные данные в делегате приложения, чтобы вы могли начать использовать свои маяки, зарегистрированные в Estimote Cloud. - person Juan Gonzalez; 15.04.2015
comment
Да сделаю это позже, моя оценка еще у курьера. [ESTCloudManager setupAppID:nil andAppToken:nil]; В чем преимущество использования их SDK вместо использования CoreLocation? Потому что я могу заменить ESTBeaconManager на CLLocationManager и ESTBeaconRegion на CLLocation. - person user1872384; 15.04.2015
comment
Что ж, я предлагаю использовать их пример кода, чтобы заставить Estimote SDK работать хорошо. И CoreLocation, и CoreBluetooth требуются с нуля или с использованием примера кода. Если вы хотите создать общее приложение-маяк (не Estimote), вам следует использовать CLLocationManager и CLLocation. - person Juan Gonzalez; 15.04.2015

Загрузите код из здесь и не пытайтесь экспортировать его из файла модуля, вместо этого вы можете напрямую используйте пример проекта xcode, экспортированного из загруженного вами zip-файла iOS-SDK. Попробуйте один раз, если у вас возникла такая же проблема или нет.

person mshau    schedule 15.04.2015

from heypiotr: «В SDK 3.0 мы переключились с ESTBeaconRegion на CLBeaconRegion, это руководство еще не было обновлено, чтобы отразить это. Хотя это просто: просто измените все вхождения ESTBeaconRegion на CLBeaconRegion. И пока вы это делаете, мы также изменили ESTBeacon на CLBeacon, так что вы можете заменить и их». Это все объясняет. Спасибо, ребята!

person user1872384    schedule 15.04.2015