0

Objective-C ++を使用してコードをコンパイルすると、関数NSStringFromPointは表示されなくなりますが、Objective-Cでは問題ありません。

どうすれば客観的にすることができますか-C++はその関数を見ることができますか?

Objective-C ++でコンパイルすると、次のようになります。

error: 'NSStringFromPoint' was not declared in this scope
error: 'NSStringFromRect' was not declared in this scope
error: 'NSEqualSizes' was not declared in this scope
4

2 に答える 2

3

私が間違っていれば誰かが私を訂正することができますが、iPhone SDKに対してリンクしている場合は、 NSPointまたははありませんNSStringFromPoint。UIKitはコアグラフィックス構造体CGPointCGSizeおよびを使用しCGRectます。同等の関数はですNSStringFromCGPoint

シミュレーターライブラリーはiPhoneライブラリーと完全には一致していません-私は、Mac自身のFoundation.frameworkに対するシミュレーターリンク用にコンパイルされたアプリケーションをかなり確信しています。たとえば、NSXMLDocumentiPhoneでコンパイルして実行したため、iPhoneで利用できると考えて、2。0日前に多くの時間を無駄にしました。

于 2010-05-12T15:05:01.013 に答える
1

私はこの単純なアプリケーションをコンパイルしました:

#include <Cocoa/Cocoa.h>
int main (void)
{
    NSLog (@"%@", NSStringFromPoint(NSMakePoint(10, 10));
    return 0;
}

このコマンドラインの使用:

gcc -x objective-c++ test.mm -framework Cocoa -lstdc++

そして、私はこの出力を取得しました(自動解放プールが配置されていないというエラーを無視します):

2010-05-12 12:41:33.946 a.out [290:10b] {10、10}

正しいヘッダーが含まれていることを確認してください。少なくとも、インポートしていることを確認してください<Foundation/Foundation.h>。明示的な#import <Foundation/Foundation.h>ものがすでに含まれている場合、それは害を及ぼしません。

于 2010-05-12T03:00:01.880 に答える