未知的类型名称' ESTBeaconRegion&#39 ;;你的意思是' CLBeaconRegion'?

时间:2015-04-15 02:47:36

标签: objective-c xcode ibeacon estimote

Isssue 1:

我正在关注this estimote tutorial来创建我自己的Estimote应用。但是出现了这个错误:

  

未知类型名称'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

更新:(尝试Juan Gonzalez建议的示例应用程序) enter image description here

4 个答案:

答案 0 :(得分: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];
    }
}

我希望这会对你有帮助。

答案 1 :(得分:1)

我使用Estimote SDK库时遇到了同样的问题。由于未知原因,如果您尝试在新的Xcode项目中包含SDK库,则似乎无法加载它。即使您使用CoreLocation和CoreBluetooth标头。

我建议你使用示例代码,以便有一个包含库的项目,然后开始修改它。

答案 2 :(得分:0)

here下载代码并且不要尝试从pod文件中导出代码,而不是直接使用从您下载的iOS-SDK zip文件导出的示例xcode项目。如果你遇到同样的问题,请尝试一次。

答案 3 :(得分:0)

来自heypiotr,&#34;在SDK 3.0中,我们从ESTBeaconRegion切换到CLBeaconRegion,您正在进行的本教程尚未更新以反映这一点。这很简单:只需将所有ESTBeaconRegion事件更改为CLBeaconRegion即可。虽然您正在使用它,但我们也将ESTBeacon更改为CLBeacon,因此您可能也想要替换它们。&#34;这解释了一切。大家好!