说我有一个界面
// Car.h
@interface Car
@property ( readonly) NSInteger rpm
@end
我希望它的所有用户都以只读方式访问它
在我的代码私有且不向用户公开的其他区域中,我想操纵 rpm
说
// EngineFeedback.h
@interface EngineFeedback
@property(nonatomic , weak ) Car *theCar;
@end
// EngineFeedback.m
-(void) engineRPMReceived:(NSInteger) newRPM
{
theCar.rpm = newRPM;
}
我怎样才能做到这一点(我需要它是可写的)
我可以定义一个覆盖属性的类扩展吗
// Car_Internal.h
@interface Car ()
@property(readwrite) NSInteger rpm
@end
为了能够将其用作
// EngineFeedback.m
#import "Car_Internal.h"
-(void) engineRPMReceived:(NSInteger) newRPM
{
theCar.rpm = newRPM;
}
这很糟糕吗?有没有更好的方法来实现这一目标?