[英]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.