[英]XCode 'Build for Archive' HUGE errors in CGRectMake
我只是在构建我的Cocoa应用程序,以便在Mac应用程序商店中分发,但这是我第一次使用“构建并存档”。 现在,对于我所有的cgrectmake
,它给我一个构建错误,说:
error: incompatible type for argument 1 of 'setFrame:'
始终受影响的代码是:
image.frame = cgrectmake(x, y, width, height);
这是在正常调试中发生的。 到底是怎么回事?
顺便说一下,我正在使用XCode 4,如果有区别的话
假设您正在构建Mac App Store(如您所说),那么您正在使用NSImageView。 您的问题是NSImageView使用NSRect设置框架,可以使用NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h)
创建框架。
确保正确拼写CGRectMake
。 Objective-C区分大小写,因此cgrectmake
是一个错误的函数名称。
另外,如果您要构建32位(我假设您将使用发布版本),则CG类型与那里的NS对应类型不同。 AppKit使用NSRect
类的类型,该类型在64位上定义为CGRect
,但默认情况下在32位上定义为CGRect
。 在导入Cocoa.h之前,请在前缀标头中定义NS_BUILD_32_LIKE_64
,以使NSRect
即使在32位体系结构上也被定义为CGRect
。
定义一个宏有其他后果,特别是有关的定义NSInteger
和NSUInteger
。 在上载到App Store之前,请执行其他测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.