2017-04-22 3 views
0

작업을 사용하여 내 데이터를 plist 파일에 저장하려고합니다. 비동기 저장을 구현하고자하므로 start() 을 저장했지만 확인을 시도하면 절약 완료되었습니다. isFinished은 false로 유지됩니다. 그러나 계획대로 데이터가 성공적으로 저장되었습니다.작업 isFinished 항상 false

class OperationDataManager: Operation { 

    var user: AppUser? 
    override func start() { 
     if let plist = Plist(name: "userFile") { 
      if let dict = plist.getMutablePlistFile() { 
       dict["userName"] = user?.userName 
       dict["userInfo"] = user?.userDescription 
       dict["userColor"] = NSKeyedArchiver.archivedData(withRootObject: user?.userColor) 
       dict["userImage"] = UIImagePNGRepresentation((user?.userImage)!) 
       do { 
        try plist.addValuesToPlistFile(dictionary: dict) 
       } catch { 
        print(error) 
       } 
      } 
     } 

     if isFinished == true { 
      print("Operation: finished") 
     } else { 
      print("Operation: not finished") 
     } 
    } 
} 

무엇이 잘못 되었습니까?

답변

0
  1. isFinishedmain가 완료된 후까지 true로 설정되지 않는다. 결코 truestart 또는 main 안에 없습니다.
  2. isFinished을 확인하실 필요가 없습니다. main이 끝나면 끝납니다.
+0

답변 해 주셔서 감사합니다. 그러나 구체적인 사례가 있습니다. 뭔가 잘못되었을 때를 대비하여 오류 경고를 표시하고 싶습니다. 나는 isFinished 깃발이 그것을 위해 충분히 좋을 것이라고 생각했다. 이 경우 귀하는 어떤 조언을 할 수 있습니까? – dand1

+0

어디에 잘못 갔습니까? – rmaddy

관련 문제