2017-09-14 71 views
5

uyarı ana iplikten kullanılması gerekir bana verirSwift 4, ben <code>Xcode 9</code> içinde <code>Swift4</code> kullanırken sadece

UIApplication.delegate sadece

.... dan kullanılmalıdır ana iş parçacığı gelen kullanılmalıdır arka plan iş parçacığı Grup

Mor Uyarı çağrılan ana iş parçacığı yalnızca

UI API.

Kodlarım;

var appDelegate = UIApplication.shared.delegate as! AppDelegate 
public var context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 
let prefs:UserDefaults = UserDefaults.standard 
var deviceUUID = UIDevice.current.identifierForVendor!.uuidString 

Uyarı çizgidir;

public var context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 

Bunun gibi başka bir uyarı;

let parameters = [ 
         "tel": "\(self.phone.text!)" 
         ] as [String : String] 

verir

UITextField.text sadece

aynı hata tekrar ana iş parçacığı gelen kullanılmalıdır

..

bunu nasıl düzeltebilirim? Herhangi bir fikir ?

cevap

15

Bu aramayı arka plan kuyruğunda yapıyorsunuz. Bu bunu yapmak için oldukça kötü bir yol olmakla birlikte ... gibi bir şey denemek,

public var context: NSManagedObjectContext 

DispatchQueue.main.async { 

    var appDelegate = UIApplication.shared.delegate as! AppDelegate 
    context = appDelegate.persistentContainer.viewContext   
} 

düzeltmek için ... Eğer genel değişken olarak App temsilci kullanıyoruz (hepimiz kötü olduğunu biliyorum hangi!)

You ... denetleyicisi görüntülemek için görünüm denetleyicisinden yönetilen nesne bağlamı geçen en

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: 

    (window?.rootViewController as? MyViewController).moc = persistentContainer.viewContext 
} 

ve böylece

+0

üzerinde Özellik 'kamu' verir görünmelidir sadece yerel olmayan bir kapsam yanlışlıkla kullanılabilir – SwiftDeveloper

+0

Halkı kaldırmayı denedin mi? –

+0

Uygulamada birçok hata veriyor, bu kodları benim settings.swift dosyasında bu sınıfta değil, bu kodları uygulama temsilcisine taşımam gerekiyor mu? Bu kodları kullandığımda – SwiftDeveloper