2015-04-15 4 views
2

Isssue 1:Неизвестный тип имени 'ESTBeaconRegion'; вы имели в виду «CLBeaconRegion»?

Я следую this estimote tutorial создать свое собственное приложение Estimote. Однако эта ошибка возникла:

Неизвестный тип name 'ESTBeaconRegion'; вы имели в виду «CLBeaconRegion»?

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

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

#import <EstimoteSDK/EstimoteSDK.h> 

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

Это мой podFile

# 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: Почему рамки выделены красным цветом?

enter image description here

Update: (пробуя Пример приложения предложил Хуан Гонсалес) enter image description here

+0

Привет, Мустафа Ибрагим, я уже включил «#import » и «#import» AppDelegate.h «» в файле AppDelegate.m. – user1872384

+0

Основное внимание в этом вопросе уделяется EstimoteSDK, оно не имеет ничего общего с appdelegate – user1872384

ответ

5

Если вы хотите использовать «старое приложение» с новым estimote 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]; 
    } 
} 

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

+0

Я слежу за устаревшим учебником на сайте оценки. Thx для обеспечения сравнения между sdk3.0 и 2.4 – user1872384

1

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

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

+0

Какой пример кода вы предлагаете? Я попытался включить этот код в "@property (неатомный, сильный) ESTBeaconRegion * beaconRegion;" Приложение «Примеры» для «маяков» https://github.com/Estimote/iOS-SDK. Но это не работает ... Я добавил скриншот ошибки в моем вопросе выше. – user1872384

+0

Приложение «Примеры» использует CLLocation вместо ESTBeaconRegion. – user1872384

+0

Правильно, используйте пример/маяки объективного проекта C и измените его. В этом случае я использовал пример кода Proximity, не забудьте указать свои учетные данные в делегате приложения, чтобы вы могли начать использовать ваши маяки, зарегистрированные в Cloud Cloud. –

0

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

0

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