我正在创建一个通过信标进行用户跟踪的应用程序,当应用程序处于终止状态时,我正在使用地理围栏来跟踪用户的圆形区域。
我正在创建一个循环区域并输入,退出代理是否正确运行。但在那个应用程序崩溃之后。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CLCircularRegion major]: unrecognized selector sent to instance 0x608000010470'
*** First throw call stack:
(
0 CoreFoundation 0x000000010e29bb0b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010dcbb141 objc_exception_throw + 48
2 CoreFoundation 0x000000010e30b134 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x000000010e222840 ___forwarding___ + 1024
4 CoreFoundation 0x000000010e2223b8 _CF_forwarding_prep_0 + 120
5 ShowAllBeaconList 0x000000010d38ae90 -[MinewBeaconManager locationManager:didExitRegion:] + 128
6 CoreLocation 0x000000010e6a74e9 CLClientGetCapabilities + 38273
7 CoreLocation 0x000000010e699b55 CLClientInvalidate + 1051
8 CoreFoundation 0x000000010e241b5c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
9 CoreFoundation 0x000000010e226e54 __CFRunLoopDoBlocks + 356
10 CoreFoundation 0x000000010e226a23 __CFRunLoopRun + 1971
11 CoreFoundation 0x000000010e226016 CFRunLoopRunSpecific + 406
12 GraphicsServices 0x0000000115f69a24 GSEventRunModal + 62
13 UIKit 0x000000010e7ee0d4 UIApplicationMain + 159
14 ShowAllBeaconList 0x000000010d37ccd7 main + 55
15 libdyld.dylib 0x0000000111b0965d start + 1
16 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
由于
答案 0 :(得分:0)
当你回应-didEnterRegion和-didExitRegion时,你需要确保传入的CLRegion是一个特定的类。
目标-C
if ([region isKindOfClass:[CLCircularRegion class]]) {
// Geofence
}
if ([region isKindOfClass:[CLBeaconRegion class]]) {
// Beacon
}
夫特
if region is CLCircularRegion {
// Geofence
}
if region is CLBeaconRegion {
// Beacon
}
您将希望避免访问特定类中不可用的任何属性。如果希望编译器帮助您,可以将其强制转换为特定对象。