2016-04-07 54 views
0

當我打印複製器對象的描述時,我使用Cloudant DB並在CDTReplicatorDelegate中看到它具有唯一的複製會話ID。我如何使用對象訪問它?它沒有任何屬性。的replicator.description如何使用swift從CDTReplicator對象獲取複製ID?

示例輸出:

CDTReplicator push, source: establishment, target: https://ighterequallockneovessin:*****@*****.cloudant.com/establishment filter name: (null), filter parameters (null), unique replication session ID: 930C1002-B0B2-4576-BE84-C0BEFBD00834

我存儲所述複製對象(一個以上的)在一個單一的代理和複製完成時,我想以除去其參考。這就是爲什麼我需要它。

func appendReplicator(replicator: CDTReplicator) { 
     replicators.append(replicator) 
} 

任何想法?

回答

0

我爲多個複製器使用單個委託。我只有兩個複製器,所以當複製器啓動時,我只在這兩個變量之一中存儲對它的引用。當它完成時,我將傳入replicatorDidComplete函數的複製器與這些變量進行比較。你能做這樣的事嗎?

var replicators : [CDTReplicator] = [] 

// on start 
replicators.append(replicator) 

// on complete, error, etc 
func replicatorDidComplete(replicator: CDTReplicator!) { 
    var match: Int? = nil 
    for (index,r) in replicators.enumerate() { 
     if (r == replicator) { 
      match = index 
      break 
     } 
    } 
    if (match != nil) { 
     replicators.removeAtIndex(match!) 
    } 

我會動議到removeReplicator功能,這樣你就可以從replicatorDidCompletereplicatorDidError叫它等

+0

完美!我使用了身份運算符'==='而不是等號。但基本上是一樣的。謝謝。 – oyalhi

0

目前你不能。如果您真的想要訪問複製器會話ID,那麼最好的辦法是在github上提出功能請求。

+0

這不是必須的,但會一直在我的情況更整潔。現在我將使用單獨的代表來跟蹤。 – oyalhi

相關問題