好吧,我对一个错误感到厌烦:
错误:'initWithFrame:'参数1的不兼容类型
这是导致它的原因:
operationLabel = [[NSTextField alloc] initWithFrame:CGRectMake(0, self.frame.size.height / 2 - (40 * 3), self.frame.size.width, 100)];
Run Code Online (Sandbox Code Playgroud)
定义是:
- (id)initWithFrame:(NSRect)frameRect;
Run Code Online (Sandbox Code Playgroud)
所以第一个参数是NSRect,让我们检查一下:
typedef CGRect NSRect;
Run Code Online (Sandbox Code Playgroud)
怎么会导致错误?它们的名称相同,名称相同!
Eik*_*iko 11
除了zoul的回答,我还以为我会提到Apple的两个辅助函数(宏?)(从10.5开始):
NSRect NSRectFromCGRect(CGRect cgrect)
CGRect NSRectToCGRect(NSRect nsrect)
Run Code Online (Sandbox Code Playgroud)
NSRect与CGRect为iOS构建,64位Mac架构或具有宏的32位Mac架构NS_BUILD_32_LIKE_64在命令行或前缀头中定义为1的类型相同.
或者,引用NSGeometry.h:
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5129 次 |
| 最近记录: |