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: 为什么框架以红色突出显示?
更新:(尝试Juan Gonzalez建议的示例应用程序)
答案 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;这解释了一切。大家好!