0

在 iOS 中,objRect是一个CGRect对象。代码运行良好

if (objRect.origin.x > 0)  { 
    // do something 
}

但在它下面,这条线

NSLog(@"%@", objRect);

将导致错误的内存访问 ( EXC_BAD_ACCESS) 并且程序将停止。这是为什么?否则可以打印出对象吗?

4

1 回答 1

3

CGRect 不是 Objective-C 对象,因此它无法响应 [objRect 描述](这就是 %@ 的意思)。它是一个结构:

struct CGRect {
    CGPoint origin;
    CGSize size;
};
typedef struct CGRect CGRect;

如果你想记录你的 CGRect,你可以使用NSStringFromCGRect

于 2012-04-20T03:58:09.540 回答