operator ->
Objective-Cに問題があります。
ObjC クラスに C++ ラッパーが必要です。
だから私は自分のクラスを作成しました:
@interface User : NSObject
@property (nonatomic, copy) NSString *name;
@end
そしてラッパークラスも:
class UserWrapper {
User *_user;
// ctors, accessors, etc.
operator User *(){
return _user;
}
User *operator->(){
return _user;
}
};
それを介してバッキングオブジェクトにアクセスしようとすると、operator User*
うまくいきます:
UserWrapper wrapper([User new]);
[wrapper setName:@"alex"];
NSLog(@"%@", [wrapper name]);
しかし、このオブジェクトにアクセスしようとするとoperator ->
UserWrapper wrapper([User new]);
[wrapper setName:@"alex"];
NSLog(@"%@", wrapper->name);
次のエラーがあります。
Property 'name' found on object of type 'User *'; did you mean to access it with the "." operator?
の理解operator ->
が間違っているようです。
誰かが私が間違っていることと、この問題を修正する方法について説明していますか?
バッキングオブジェクトに直接アクセスする別の方法があるのではないでしょうか?