2016-06-27 8 views
0

データを取得する独自のコアデータ機能があります。この関数は、エンティティ名を除いて、前の関数と同じです。以前の作品は素晴らしいですが、fetchedDataからデータを取得しようとするとエラーEXC_BAD_ACCESSで失敗します。コアデータEXC_BAD_ACCESS

func fetchGroups() -> Array<Group> { 
    var groups: Array<Group> = [] 
    let fetchRequest: NSFetchRequest<Public> = Public.fetchRequest() 
    fetchRequest.sortDescriptors = [SortDescriptor.init(key: "publicTitle", ascending: true)] 
    let fetchedData = try! context.fetch(fetchRequest) 
    if (!fetchedData.isEmpty) { 
     for i in 0...fetchedData.count-1 { 
      print(fetchedData[0]) 
      var group: Group = Group() 
      group.groupName = fetchedData[i].publicTitle 
      group.groupPhoto = fetchedData[i].publicPhoto 
      group.groupID = Int(fetchedData[i].publicID) 
      groups.append(group) 
     } 
     return groups 
    } 
    else { 
     return groups 
    } 
} 

if (!fetchedData.isEmpty)後の括弧内のコードを実行するのであれば、配列が空ではありません。なぜ要素を得ることに失敗するのですか?

P.S. fetchedData.count = 1;しかし、fetchedData[0] =大きなクラッシュ!マジック。

+0

おそらく、コンテキストはこの時点では配列型を提供しません。 varグループに変更することができます:アレイ = []をvarグループに追加する:[グループ] = [グループ]() – Adolfo

+0

グループの個々のフィールドに正しく入力されたことをどのように知っていますか? – Feldur

+0

@AdolfoグループではなくfetchedDataの読み込みで破損する –

答えて

3

長年の研究の結果、問題はあまりにも小さかったが、見つけにくいことがわかった。私は自分のcoredata.xcdatamodeldファイルをチェックして、PublicエンティティにClass定義がないことに気付きました。デフォルトでは、すべてのエンティティは名前のみを持ちます。

関連する問題