Q:How 从 NSConcreteValue 获取 CGPoint?
Q:How to get CGPoint from NSConcreteValue?
我在我的项目中使用RAC来观察tableView's
contentOffset,但我不知道如何提取x
,因为id
的类型是[=15] =]:
[RACObserve(_tableview, contentOffset)
subscribeNext:^(id x){
float currentOffsetY = x.y; // this line is wrong code.
}];
我参考了相关问题:
Get value from KVO - returning NSConreteValue
您要查找的是 NSValue
上的 pointValue 属性。所以你只需要将 x 参数转换为 NSValue
因为 NSConcreteValue
是 NSValue
的子类。然后您可以从 CGPoint
结构中提取所需的值。
背景资料
如果您想将 C 结构(例如 CGPoint
或 CGRect
)视为 Objective-C 对象,例如将其添加到 NSArray
,您需要将其包装在一个对象中。因此,Apple 在 NSValue
上提供了特殊的初始化程序和 getter。
我在我的项目中使用RAC来观察tableView's
contentOffset,但我不知道如何提取x
,因为id
的类型是[=15] =]:
[RACObserve(_tableview, contentOffset)
subscribeNext:^(id x){
float currentOffsetY = x.y; // this line is wrong code.
}];
我参考了相关问题: Get value from KVO - returning NSConreteValue
您要查找的是 NSValue
上的 pointValue 属性。所以你只需要将 x 参数转换为 NSValue
因为 NSConcreteValue
是 NSValue
的子类。然后您可以从 CGPoint
结构中提取所需的值。
背景资料
如果您想将 C 结构(例如 CGPoint
或 CGRect
)视为 Objective-C 对象,例如将其添加到 NSArray
,您需要将其包装在一个对象中。因此,Apple 在 NSValue
上提供了特殊的初始化程序和 getter。