SearchOperation create child when exec

This commit is contained in:
Chris Li 2016-09-13 14:09:53 -04:00
parent 9181d34c0f
commit 71e43c60e4
3 changed files with 14 additions and 4 deletions

View File

@ -49,7 +49,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>1.8.361</string>
<string>1.8.369</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>

View File

@ -21,7 +21,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.8.364</string>
<string>1.8.372</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionMainStoryboard</key>

View File

@ -10,8 +10,14 @@ import Operations
class SearchOperation: GroupOperation {
private(set) var results = [SearchResult]()
let searchTerm: String
init(searchTerm: String) {
self.searchTerm = searchTerm
super.init(operations: [])
}
override func execute() {
let searches: [BookSearch] = ZimMultiReader.shared.readers.keys.map({ BookSearch(zimID: $0, searchTerm: searchTerm) })
let sort = Sort()
searches.forEach { (search) in
@ -19,12 +25,16 @@ class SearchOperation: GroupOperation {
operation.requirement += dependency.results
})
}
super.init(operations: searches + [sort])
sort.addObserver(DidFinishObserver { [unowned self] (operation, errors) in
guard let operation = operation as? Sort else {return}
self.results = operation.requirement
})
})
addOperations(searches)
addOperation(sort)
super.execute()
}
}