我在我的应用中使用核心运动。此代码工作正常:
motionManager = [[CMMotionManager alloc] init];
int a = [CMMotionManager availableAttitudeReferenceFrames];
此代码因 EXC_BAD_ACCESS 而崩溃,并在行上方显示此注释:THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY_YOU_MUST_EXEC__
int a = [CMMotionManager availableAttitudeReferenceFrames];
motionManager = [[CMMotionManager alloc] init];
我可以通过使用语句的第一个顺序来解决这个问题,但是因为 availableAttitudeReferenceFrames 被定义为
+ (NSUInteger)availableAttitudeReferenceFrames
看来我应该能够在实例化一个类之前访问该属性。为什么这行不通?
最佳答案
这是一个相当奇怪的错误。如果您调用 fork()
然后尝试使用 CoreFoundation,您应该只会看到这一点。由于您不能在 iOS 上使用 fork()
,因此您永远不会看到此错误。
你能在一个非常小的示例项目中重现这个问题吗?如果可以的话,你应该file a bug report与 Apple 合作并附上示例项目。
关于objective-c - 在分配实例之前尝试访问静态属性时发生崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11269650/