Hızlı kullanarak bir iOS uygulaması oluşturuyorum.Bellek sızıntısı olmadan tamamlama blokunda çağrı işlemi
Diyelim ki bir diziyi ana iş parçacığı olarak farklı bir iş parçacığı içinde sıralamak istiyorum. Böyle NSOperation alt sınıf: Benim ViewController olarak
import UIKit
class Operation: NSOperation {
var array:[Int]
init(array:[Int]){
self.array=array
println("Operation init")
}
deinit{
println("Operation deinit")
}
override func main() {
for i in 0..<array.count{
for j in 0..<array.count{
if array[i]<array[j]{
let k = array[i]
array[i] = array[j]
array[j] = k
}
}
}
}
}
, şöyle bir şey kullanabilirsiniz:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let array = [6,5,4,3,2,1]
let operation = Operation(array: array)
let operationQueue = NSOperationQueue()
operationQueue.addOperation(operation)
operation.completionBlock = {
println("done")
}
}
}
Sorum şu: Ben operation.completionBlock içinde operation.array ararsanız beri, operasyon asla serbest bırakılır, tamamlanmış blokta (veya başka bir yerde) sıralanmış diziyi nasıl alabilirim?
Bir yol görüyorum. Sadece bir dizi özelliği ile bir nesne oluşturmak ve bu nesneyi İşlem'e iletmek, sonra dizideki nesneyi geri alabilmek ama daha iyi bir şekilde var olabilmek.
teşekkür ederiz Bunu kaldırabileceğinden çeşitli yolları vardır