4
struct Line {

    NSUInteger x1;
    NSUInteger x2;
};

// ...

- (Line)visibleLine;

Line は有効な型ではないため、上記のコードは明らかに機能しません。助言がありますか?

4

4 に答える 4

11

Objective-C は、C++ ではなく C に基づいています。ではCを使用する必要がありますがstruct Line、C++ ではLine問題ありません。

これは次のように行うことができます:

struct {
    NSUInteger x1;
    NSUInteger x2;
} Line;

// ...

- (struct Line)visibleLine{
    
}

また

struct Line {
    NSUInteger x1;
    NSUInteger x2;
};
typedef struct Line Line;

// ...

- (Line)visibleLine;

上記は、ほとんどの C フレームワークで推奨されています。

また、

typedef struct {
    NSUInteger x1;
    NSUInteger x2;
} Line;

// ...

- (Line)visibleLine;
于 2013-03-14T10:04:50.630 に答える
7
typedef struct {
    NSUInteger x1;
    NSUInteger x2;
} Line;

// ...

- (Line)visibleLine;

私はもともと(他の回答の前に)明確な理由で上記を提案しました。これは、Appleが独自のコードで行う方法です。これが唯一の方法ではありませんが、Apple が行っている標準的な方法です。structAPI のどこにもメソッドのプロトタイプを挿入することはありません。

于 2013-03-14T10:03:21.223 に答える
3

キーワードstructがありませんでした。

- (struct Line)visibleLine;
于 2013-03-14T10:06:56.753 に答える