修改节点的值

优质
小牛编辑
130浏览
2023-12-01

对于 EZRMutableNode\ 类的实例来说,T value属性是可写并且线程安全的。我们可以通过点语法来修改一个可变节点的值,像这样:

EZRMutableNode<NSNumber *> *node = [EZRMutableNode value:@55];
node.value = @82;

有的时候,你希望将一个可变节点重新修改为空值(EZREmpty.empty),由于泛型约束通过点语法会产生警告,你可以使用- (void)clean方法,像这样:

EZRMutableNode<NSNumber *> *node = [EZRMutableNode value:@55];
[node clean];                                                   // <- 修改为 EZREmpty.empty
id value = node.value;                                          // <- EZREmpty.empty

有的时候,你还希望传递过程和接收者获取一些额外的信息,这时你可以利用- (void)setValue:(nullable T)value context:(nullable id)context方法给传递过程附加一个上下文对象,像这样:

EZRMutableNode<NSNumber *> *node = [EZRMutableNode value:@55];
[node setValue:@83 context:@"看,是File1.m写的!"];