2016-04-13 36 views
1

Couchbase-lite bölmesini yüklememi gerektiren bir Uygulama oluşturmaya çalışıyorum. Bir sınıfı başlatmaya çalıştığımda, bunun NS_UNAVAILABLE olduğunu ve bunun yerine fabrika sınıfı yöntemlerini kullanmamı istediğini söyledi. 'Fabrika sınıfı yöntemleri'ni kullanarak genel olarak bunu nasıl yapacağım?Swift'de fabrika sınıfı yöntemi nedir?

class Polyline: CBLModel { 

init() {  // the error starts here that says init is unavailable 

    /* code here */ 

} 

cevap

0

Fabrika yöntemi sınıfının bir örneğini oluşturan bir sınıf fonksiyonudur:

örneğin Bunu yapan Say.

her modelin veritabanındaki bir belgeyle bire-bir ilişki olduğunu hatırlayın: tümüyle init atlar bir desen takip etmeli

Couchbase documentation says. CBLModel'un herkese açık başlatıcı yöntemleri yoktur ve kendinizi alt sınıflara uygulamanız gerekmez. özel başlatma gerekiyorsa

let poly = Polyline(forNewDocumentInDatabase: database) 

, aynı zamanda bir fabrika yöntem haline gitmek gerekiyor:

class Polyline : CBLModel { 
    @NSManaged var x : Int 
    @NSManaged var y : Int 

    class func newPolylineInDatabase(database: CBLDatabase, withX x: Int andY y:Int) 
    -> Polyline { 
     let res = Polyline(forNewDocumentInDatabase: database) 
     res.x = x 
     res.y = y 
     return res 
    } 
} 
aşağıdaki gibi yeni polylines oluşturma

yapılmalı

İlgili konular