2014-09-19 3 views
-2

IOS 응용 프로그램을 개발 중입니다. 어디에서 서버에 이미지를 업로드해야합니까? 이 작업을 수행하려면 NSURLSessionuploadTaskWithRequest을 사용하고 있습니다. 모든 것은 정상적으로 잘 작동합니다. 내 요구 사항 사용자가 데이터베이스 SQLLite를 사용하여 응용 프로그램에서 10 개 이상의 이미지로 일부 게시물을 저장하고 싶어. 그리고 저장 한 모든 게시물을 각 UITableViewCell 버튼이있는 UITableView에 표시합니다. 사용자가 각 버튼을 탭하면 각 POST를 서버에 업로드하기 시작해야합니다. 그래서 나는 내 UIViewControllerAppDelegate에 유지해야한다고 생각하여 사용자가 다른보기 컨트롤러로 이동할 때 업로드 프로세스가 중단되어서는 안됩니다.IOS : UIViewController 상태를 그대로 유지할 수 있습니까

내 문제 : 사용자가 앱을 닫으면 UIViewController POST 업로드가 중지되는 프로세스입니다. 그래서 내 UIViewController 응용 프로그램에서 심지어 가까운 라이브 또는 배경으로 이동 계속 살고 싶습니다.

내 요구 사항을 충족하는 더 좋은 방법이 있습니까?

+0

당신은 뒤로 문제에 대해 생각하고 예를 들면 다음과 같습니다. 뷰 컨트롤러는주의의 중심이 아니라 실제 코드에서 사용되는 도구 여야합니다. 보기 제어기가 표시하는 상태는 다른 위치에서 유지되어야하며보기 제어기는 표시 할 내용을보기 위해 상태를 조회해야합니다. –

답변

0

다음은 몇 가지 더 좋은 방법입니다.

  1. 싱글 톤을 사용하십시오. 내 응용 프로그램에서 나는 보통 내가 할 일은

    [DataHandler uploadImages:images]; 
    

있는 모든 NSURLSession/CoreData/등 물건의 처리 "의 DataHandler"라는 클래스를 만들고 있습니다 내가 다시 정보를 필요로 할 때 전화 할게

self.tableData = [DataHandler lastUploadedImages]; 

이렇게하면 내보기 컨트롤러가 아직 살아 있는지 걱정할 필요가 없습니다.

  1. AppDelegate가 NSURLSession 작업을 수행하도록하십시오. 당신은 AppDelegate가 지속된다는 것을 이미 알고 있습니다. 왜 그 사람이 그렇게하지 않았습니까!

    UIApplication *sharedApplication = [UIApplication sharedApplication]; 
    AppDelegate *appDelegate = [sharedApplication delegate]; 
    // this is the method you would add to your AppDelegate. Make sure to 
    // import your AppDelegate's header file so your ViewController can 
    // call the method. 
    [appDelegate uploadImages:images]; 
    
+0

좋습니다. 내가 한 가지 질문이 UIViewController 응용 프로그램을 닫았거나 배경으로 들어갈 때도 계속 사용할 수 있습니다. 앱이 배경으로 돌아 가면 지속 된 작업이 UIViewController에서 실행되지 않기 때문입니다. – pasha

관련 문제