修改节点的值
对于 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写的!"];