2

我正在移植一个名为sneakyness / SneakyInput 的项目,该项目托管在https://github.com/sneakyness/SneakyInput的github 上。它在 cocos2d-iphone 的 objective-c 中。我想将它移植到 c++ 以在 cocos2d-x 中使用。在 SneakyJoystick.h 中 where 等属性 @property (nonatomic, readonly) CGPoint stickPosition;CGPoint stickPosition一个已经定义好的变量。我通常将这个变量定义为CCPoint stickPosition;但是我很困惑 @property (nonatomic, readonly) CGPoint stickPosition; 我应该用 C++ 代码编写它还是保留它。

4

1 回答 1

1

如果你有 C++ 代码,你可以保持原样(C++)并与 Objective-C 交互而不会出现问题。

相反,如果您的意图是将所有内容重写为 Objective-C,则应将目标 C 属性替换为 C++ 中的属性:

C++ 中的属性

private: 
    int x; 
public:  
    int getX()
    {
        return x;
    }
    void setX(int value) 
    {
        x = value;
    }   

Objective-C 中的属性

@property(nonatomic) int x;

@synthesize x;

请记住,Objective-C 中的属性声明分为两个文件:@property进入头文件(.h),@synthesize进入实现文件(.m)。

要更好地了解如何@property@synthesize工作,请查看苹果声明的属性文档和/或其他问题

于 2012-08-11T07:30:53.380 回答