8732


`swift`で`for-in`文を使おうとしているのですが、うまくいきません。  
下のコードの`wordData.append`の行で、「`RLMObject does not have a member named
word`」というエラーが表示されてしまいます。  
`Word`というクラスには`word`というメンバ変数が存在しています。  
なので初歩的なことでしょうけど、どうすればいいかわからなくなり詰まってしまいました。  
どなたか分かる方がいればどこが間違っているのかを教えていただきたいです。  
すみませんが、よろしくお願いします。

[code]

        var wordData: [String] = []
        let word = Word.objectsWhere("speech == A")
    
        for wordStore in word {
            wordData.append(wordStore.word)
        }
    
[/code]


CC BY-SA 3.0
2015-04-03T14:45:31.917
8731
2015-04-04T00:30:15.530
2015-04-03T14:57:44.130
3639
5210
question
swift realm
for in 文の使い方


ダウンキャストが必要です。

[code]

    for item in word {
        if let wordStore = item as? Word {
            wordData.append(wordStore.word)
        }
    }
    
[/code]


CC BY-SA 3.0
2015-04-03T14:57:17.530
8732
2015-04-03T14:57:17.530
3639
8731
answer


※ Realmを使っていると知らず以下の様な回答をしました・・・ダウンキャストが対応として正しいと思います。

Word#objectsWhereはどのように宣言されていますか？

[code]

    class Word {
       class func objectsWhere(where: String) -> [Word] {
          // Do something.
       }
    }
    
[/code]

のようになっていれば以下のコードはコンパイル可能だと思います（変数名をわかりやすく変更しましたが、やっていることは同じです）

[code]

    var wordData: [String] = []
    let wordArray = Word.objectsWhere("speech == A")
    
    for word in wordArray {
        wordData.append(word.word)
    }
    
[/code]


CC BY-SA 3.0
2015-04-03T23:50:46.450
8735
2015-04-04T00:30:15.530
2015-04-04T00:30:15.530
8666
8666
8731
answer