我在项目中使用RAC来观察tableView's
contentOffset,但我不知道如何提取x
,因为id
的类型是NSConcreteValue
:
[RACObserve(_tableview, contentOffset)
subscribeNext:^(id x){
float currentOffsetY = x.y; // this line is wrong code.
}];
答案 0 :(得分:3)
您要找的是NSValue
上的pointValue属性。因此,您只需将x参数强制转换为NSValue
,因为NSConcreteValue
是NSValue
的子类。然后,您可以从CGPoint
结构中提取所需的值。
背景资料
如果要将C结构(例如CGPoint
或CGRect
)视为Objective-C对象,例如,将其添加到NSArray
,则需要将其包装在一个对象中。因此,Apple在NSValue
上提供了特殊的初始化程序和getter。