2016-06-30 3 views
0

すべてのユニークな演習をリストしたテーブルビューコントローラをセットアップしました。だから私のフェッチとすべてが動作します。私はまた、次の行 iOSコアデータ抽出NSString out of fetch

NSManagedObject *exercise = [self.exercises objectAtIndex:indexPath.row]; 
    [cell.textLabel setText:[NSString stringWithFormat:@"%@", [exercise valueForKey:@"exercise"]]]; 

私は別のビューコントローラに選択された要素を送信しようとすると、しかし、私は奇妙なオブジェクトを取得すると、テーブルにそれを置きます。機能的には文字列として実行され、次のView Controllerで文字列を出力します。しかし、コアデータでさらにクエリを実行すると、オブジェクトは実際には文字列ではないので、空のデータが取り出されます。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 

if ([segue.identifier isEqualToString:@"showGraph"]) { 
    ProgressGraphViewController *destViewController = segue.destinationViewController; 
      destViewController.exercise = [_exercises objectAtIndex:indexPath.row]; 

} 

} @end

これは私がブレークポイントを設定して

何NSKnownKeysDictionary1で、どのように私はそれから文字列を取得することができますを検査する際、データがどのように見えるかですか?

+0

フェッチ要求の応答タイプを確認するには、NSManagedObjectに設定する必要があります。 – Andy

+0

フェッチを実行するときに '.resultType = .DictionaryResultType'を指定しましたか? 'NSKnownKeysDictionary'はその場合に返されるものです。 – pbasdf

答えて

0

@Andyは、オブジェクトタイプをチェックします。そのManagedObject型がmanagedObjectプロパティでより適切に渡す場合は、そのオブジェクトの型変換を実行します。 より良い変更NSStringからNSManagedObjectへのプロパティ "exercise"。