2016-04-25 18 views
0

ここに問題があります。私はSwiftyJson経由で(JSON)からデータをダウンロードしています。私はそれをcoreDataに保存し、構造体の配列にフェッチしてtableViewに取り込みたいと思っています。これは一般的にやりたいことです。サーバーに接続できないときにCoreDataからデータをロードします接続または何か他の、ここでバックグラウンドでJSONをダウンロードし、データをSwiftのTableViewにフェッチ

は、私がこれまで

class AppDelegate: UIResponder, UIApplicationDelegate { 
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

json() 

} 

func json { 
deleteData() 

// doing the parse and serialization 
saveJson() 

} 

savejson{ 

// save into coredata ... manageContext and .... 
} 
// and rest of appdelegate 


} 
deleteData{ 

    let fetchRequest = NSFetchRequest(entityName: ",myentityName") 
      fetchRequest.returnsObjectsAsFaults = false 

     do { 

      let results = try manageContext.executeFetchRequest(fetchRequest) 
      for manageObject in results{ 

       let managedObjectData : NSManagedObject = manageObject as! NSManagedObject 

       manageContext.deleteObject(managedObjectData) 
      } 
     }catch let error as NSError { 

      print(" error : \(error) \(error.userInfo) ") 
     } 

    } 


} 

、その後、私は別のVI内のデータを使用していますがやっていることですewController(tableViewController)

Class table: UITableViewController{ 

    override func viewWillAppear(animated: Bool) { 

fetchCoreDate() //and put it into struct 

} 

//rest of the class table for table populate 

} 

、ここでは、私は、問題は、私は私は、コンソールでそれらを印刷するように私はすべてのデータをダウンロードしていますでのViewController

struct logs{ 

var logId: String 
var logName: String 
} 

の間でデータを渡すために使用しています構造体ですテーブルのデータを見ると、そこに削除機能を置くとeveythingが削除され、過去のデータを削除して新しいデータに置き換えようとしていますが、Jsonのダウンロードはアプリケーションの起動よりも時間がかかるので、ロードされ、テーブルは新しいデータがロードされていないので、データを見るには削除機能を省略する必要がありますが、It alwa ysは過去のデータに追加してレコードの複製を表示します(削除を省略した場合)

削除機能付きテーブルには何も表示されません。その複製が表示されます。データと、それは時々、時にはない追加されますので、新しいものと交換してください)

そのビット長申し訳ありませんが、シナリオが異なるのViewControllerの間での作業について何とかですので、私は彼らのポスト私は私を見つけたすべての

答えて

0

を持つべきですそれに苦しんでのいくつかの日に答え、答えはあなたが削除するメソッドのために置く場所の中にあるtask.resue()の前か、非同期タスク

func json { 

.... 
.... 
deletedata 
asynctask(...) 

// doing the parse and serialization 
saveJson() 

} 

OR

func json { 

{ 
// doing the parse and serialization 
saveJson() 
deleteData()} 
task.resume() 


} 
関連する問題