在 iOS 中,objRect
是一个CGRect
对象。代码运行良好
if (objRect.origin.x > 0) {
// do something
}
但在它下面,这条线
NSLog(@"%@", objRect);
将导致错误的内存访问 ( EXC_BAD_ACCESS
) 并且程序将停止。这是为什么?否则可以打印出对象吗?
在 iOS 中,objRect
是一个CGRect
对象。代码运行良好
if (objRect.origin.x > 0) {
// do something
}
但在它下面,这条线
NSLog(@"%@", objRect);
将导致错误的内存访问 ( EXC_BAD_ACCESS
) 并且程序将停止。这是为什么?否则可以打印出对象吗?
CGRect 不是 Objective-C 对象,因此它无法响应 [objRect 描述](这就是 %@ 的意思)。它是一个结构:
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
如果你想记录你的 CGRect,你可以使用NSStringFromCGRect。