0

これは私のコードです。データベース内のレコード数をループしますが、緯度と経度の最初のレコードのみを取得します。

    func fetch() {
    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let context: NSManagedObjectContext = appDel.managedObjectContext!
    let freq = NSFetchRequest(entityName: "Mappoints")
    let fetchResults = try! context.executeFetchRequest(freq) as! [NSManagedObject]
    self.mapView.delegate = self
    myData = fetchResults
    myData.count
    for _ in myData  {
        let data: NSManagedObject = myData[row]

    lat = (data.valueForKey("latitude") as? String)!
    lon = (data.valueForKey("longitude") as? String)!

    let latNumb = (lat as NSString).doubleValue
    let longNumb = (lon as NSString).doubleValue
    let signLocation = CLLocationCoordinate2DMake(latNumb, longNumb)
    addAnnotaion(signLocation)
    }

}

シンプルなものが欠けていると確信していますが、それを見逃し続けています。

4

2 に答える 2

1

あなたのループは奇妙に見えます。と言っmyData[row]ていますが、行をインクリメントしていないようです。行が増加しない場合、data変数は常に同じになります。

たとえば、次のことができますfor data in myData { ...

于 2015-10-04T21:05:11.197 に答える
0

これは、問題を解決するために最終的に作成したコードです。

    func fetch() {
    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let context: NSManagedObjectContext = appDel.managedObjectContext!
    let freq = NSFetchRequest(entityName: "Mappoints")
    let fetchResults = try! context.executeFetchRequest(freq) as! [NSManagedObject]
    self.mapView.delegate = self
    myData = fetchResults
    let ct = myData.count // Add this line
    // Then changed the for statement from for _ in myData
    // To the line below and now all map points show up.
    for row in 0...ct-1 {
        let data: NSManagedObject = myData[row]
        lat = (data.valueForKey("latitude") as? String)!
        lon = (data.valueForKey("longitude") as? String)!
        let latNumb = (lat as NSString).doubleValue
        let longNumb = (lon as NSString).doubleValue
        let signLocation = CLLocationCoordinate2DMake(latNumb, longNumb)
        addAnnotaion(signLocation)
    }
于 2015-10-05T01:34:19.153 に答える