跳转到内容

WDGMutableData

WDGMutableData 实例是 Wilddog Sync 节点处的另一种数据载体,当使用 [WDGSyncReference runTransactionBlock:] 方法时,你会接受到一个包含当前节点数据的 WDGMutableData 实例。 如果你想要保存此节点的数据,将此节点的 WDGMutableData 传参到 [WDGTransactionResult successWithValue:] 方法中。

Swift
```swift var value: Any? { get set } ```
Objective-C
```objectivec @property (strong, nonatomic, nullable) id value; ```

WDGMutableData 实例中的数据,value 可将其设置为 Wilddog Sync 支持的任一原生数据类型:

  • NSNumber (包括 BOOL 类型)
  • NSDictionary
  • NSArray
  • NSString
  • nil / NSNull (设置 nil / NSNull 删除该数据)

注意:

修改这个 value,会覆盖这个节点的优先级。



Swift
```swift var priority: Any? { get set } ```
Objective-C
```objectivec @property (strong, nonatomic, nullable) id priority; ```

该节点下面的数据优先级,可以设置的值类型有:

  • NSNumber
  • NSString
  • nil / NSNull (设置 nil / NSNull 删除该数据)


Swift
```swift var childrenCount: UInt { get } ```
Objective-C
```objectivec @property (readonly, nonatomic) NSUInteger childrenCount; ```

子节点的总数。



Swift
```swift var children: NSEnumerator { get } ```
Objective-C
```objectivec @property (readonly, strong, nonatomic) NSEnumerator *children; ```

当前节点下所有子节点的 Mutabledata 实例的迭代器,用于迭代该节点的子节点。可以用下面的这个方法:

for (WDGMutableData *child in data.children) {
...
}


Swift
```swift var key: String? { get } ```
Objective-C
```objectivec @property (readonly, strong, nonatomic, nullable) NSString *key; ```

当前节点的 key,最上层的节点的 key 是 nil。



Swift
```swift func hasChildren() -> Bool ```
Objective-C
```objectivec - (BOOL)hasChildren; ```

判断在当前 WDGMutableData 中,是否存在子节点。

YES 为存在子节点,NO 为不存在。



Swift
```swift func hasChild(atPath path: String) -> Bool ```
Objective-C
```objectivec - (BOOL)hasChildAtPath:(NSString *)path; ```

检查指定路径下是否存在子节点。

参数名 说明
path 可以是类似 child 的单层级路径,也可以是类似 a/deeper/child 多层级路径。

如果在指定的相对路径下,该 WDGMutableData 包含子节点,则返回 YES。



Swift
```swift func childData(byAppendingPath path: String) -> WDGMutableData ```
Objective-C
```objectivec - (WDGMutableData *)childDataByAppendingPath:(NSString *)path; ```

用于获得一个在给定的相对路径下的 WDGMutableData 数据实例。

参数名 说明
path 可以是类似 child 的单层级路径,也可以是类似 a/deeper/child 多层级路径。

指定路径下的 WDGMutableData 实例。