2017-03-26 1 views
1

특정 시간에 값을 매일 핵심 데이터에 저장하는 저장 기능이 있습니다. 그러나 앱이 실행 중이 아니거나 백그라운드에있는 경우에는 물론 값을 저장하지 않습니다. 이 문제를 해결할 수있는 방법이 있습니까? 앱이 백그라운드에서 실행되는 동안 데이터를 저장 하시겠습니까? 다음은 함수의 :앱이 백그라운드 일 때도 함수 실행

func addValueDateToCore() { 

// make sure data is not saved twice 
    if hasBeen == 0 { 

     hasBeen += 1 

    let newData: SavedAwayData = NSEntityDescription.insertNewObject(forEntityName: "SavedAwayData", into: DatabaseController.getContext()) as! SavedAwayData 

    let dateFormatter = DateFormatter() 
    dateFormatter.dateStyle = .medium 
    dateFormatter.timeStyle = .none 

    newData.name = dateFormatter.string(from: Date()) 
    newData.greenCustomer2 = veryHappyCustomer 
    newData.orangeCustomer2 = happyCustomer 
    newData.redCustomer2 = unHappyCustomer 

    DatabaseController.saveContext() 
    } 


} 

을 보임 변수가 addValueDateToCore() 후 몇 초는 누구의 사람들에게이에 대해 언급 할 수 있습니다 또 다른 기능에 의해 0으로 변이됩니다.

+0

나는 아무도 당신을 도왔다는 것을 알지 못합니다. saveContext()가 호출되고 있음을 확인하기 위해 블록 안에 print 문을 추가하려고 시도 했습니까? 당신은 hasBeen을 업데이트하는 코드를 보여 주시겠습니까? – Mozahler

+0

필자는 작성된 코드가 작동하고 있다는 것을 알고 있으며 나머지 응용 프로그램도 알고 있습니다. 내 질문에 쓰여진 문제를 고려해 볼 때 대안을 찾았다. –

+0

확인. 당신이 다 해결했기 때문에 다행입니다. – Mozahler

답변

1

앱은 오디오 재생 또는 백그라운드 네트워크 연결 처리와 같은 특정 very specific situations의 백그라운드에서만 실행할 수 있습니다. 귀하의 질문은 애플의 배경 모드에 맞지 않는 것처럼 들리지만, 문서를보고 당신이 생각하는 것을보십시오.

앱을 시작할 때 더 나은 방법 (또는 iOS에서 작동하는 방식)을 사용하는 것이 좋습니다. 놓친 날짜가 있는지 살펴보고 누락 된 데이터를 채 웁니다.

관련 문제