私のプロジェクトはコンパイルしてOKをデバッグモードで実行しますが、x86_64コンパイルをリリースすると、NSRectを使用してsetBoundsを試行するとコンパイラエラーが発生します。 (エラーは「setBoundsの引数1に互換性のない型」を読み込みました。)NS_BUILD_32_LIKE_64マクロでもsetBoundを設定できません
NS_BUILD_32_LIKE_64マクロ定義をCocoa(Foundation)インポートの上に追加することを提案している記事がたくさんありますので、「if NS_BUILD_32_LIKE_64 "NSGeometry.hの言語は真であり、必要なtypedefが使用されます。マクロの定義を問題のクラスのhファイルに追加しました。
#define NS_BUILD_32_LIKE_64 1
#import <Cocoa/Cocoa.h>
そして、私は同じコンパイルエラーを受けます。
NSRectからCGRectに明示的に変換しようとしました。その代わりに、このようにしました。 。 。
// rectIncomingSource is an NSRect
calayer.bounds = rectIncomingSource;
。 。 。私はこれを書いた:
calayer.bounds = CGRectMake(rectIncomingSource.origin.x, rectIncomingSource.origin.y, rectIncomingSource.size.width, rectIncomingSource.size.height);
同じエラー。
なぜ境界が唯一の問題になるのですか? Appleのドキュメントによれば、NSIntegerとNSUIntegerは変換の主な問題であり、私はそれらを全面的に使用しますが、コンパイラはそれらについて文句を言いません。だから、どうして境界線が詰まるのだろう?
私は恐らくここで本当に簡単な何かが欠けているでしょう - そのために私はウィザードに謝ります。盲人のための助け?