2016-08-19 16 views
0

私は怒鳴るようないくつかのデータconstainsシンプルスウィフトファイル作った:Swiftで構造体辞書を作成するとき、Foundationをインポートする必要がありますか?

let somedata = someData() 

を呼び出すことによって、私はその後、私のVCでそのデータをフェッチ

import Foundation  

struct someData { 
    let stringsAsInts: [name: String, value: Int] = [ 
     "zero" : 0, 
     "one" : 1, 
     "two" : 2, 
     "three" : 3, 
     "four" : 4, 
     "five" : 5, 
     "six" : 6, 
     "seven" : 7, 
     "eight" : 8, 
     "nine" : 9 
    ] 
} 

をしかし、私は含まれているファイルにimport Foundationを含める必要があります構造体?それは私が少なくともテストするときにそれなしで動作します。

+3

なぜあなたはそれを必要としますか?もしそれがなくてもうまくいくなら、なぜあなたは尋ねていますか? – tktsubota

+0

新しい空ファイルxcodeを作成するときにデフォルトでそれをインポートするので、 – user2636197

答えて

2

機能を使用する場合は、Foundationをインポートする必要があります。そのような機能の1つは、さまざまなNSStringメソッドです(componentsSeparatedByString(_:)など)。 Swift Stringは、NSStringにブリッジされず、Foundation:NSStringはそのコードに関しては存在しないため、これらの方法もありません。

別の例は、解析バックエンドからの結果を処理するとき、例えば、AnyObjectを使用して、String < =>NSString又はArray < =>NSArrayように、架橋型を参照することができることです。 Foundationがインポートされていない場合、関連するブリッジ、およびArraystructのインスタンスであり、classではありません。

ネイティブSwiftタイプのみを使用していて、Foundation-onlyメソッドを呼び出す必要がない場合は、Foundationモジュールをインポートする必要はありません。

+0

説明をありがとう。 Xcodeは、新しいファイルを作成したときにデフォルトでそれをインポートしました。しかし、私はdictを使ってuipickerViewを作成するので、それを削除します – user2636197

関連する問題