【发布时间】:2015-10-19 15:21:00
【问题描述】:
我非常专注地观看了关于 Advanced NSOperations 的 WWDC 2015 会议,并玩了一点 example code。
提供的抽象真的很棒,但有些东西我可能不太理解。
我想在不使用 MOC 的情况下在两个后续操作子类之间传递结果数据。
假设我有一个APIQueryOperation,它有一个NSData? 属性和第二个操作ParseJSONOperation 使用这个属性。如何将此NSData? 实例提供给第二次操作?
我试过这样的:
queryOperation = APIQueryOperation(request: registerAPICall)
parseOperation = ParseJSONOperation(data: queryOperation.responseData)
parseOperation.addDependency(queryOperation)
但是当我进入ParseJSONOperation的execute方法时,实例中的实例与初始化器中的不一样。
我做错了什么?
【问题讨论】:
-
responseData 在构造 ParseJSONOp 时可能为 nil。您可能希望通过 queryOp 或将保存响应的对象,以便您可以在 parseOp 启动时查询
responseHolder.responseData -
肯定是零。 Optionals 不是引用类型吗?
-
请记住,您的数据对象是 Nil,这意味着在填充时没有可以使用和保留的指针...
-
好的。所以我应该考虑 Optional 只有当它们不是 nil 时才作为参考类型?
-
可选性的概念与引用类型无关。引用类型只是一个通过引用而不是值传递的对象。在这种情况下,你没有传递一个对象,你传递的是 nil :)
标签: swift nsoperation