文書   >   Swift   >   Imported C and Objective-C APIs   >   Working with Foundation Types
記事
Working with Foundation Types
(Foundation 型で作業する)
Swift コードベースでブリッジされた Foundation 型を使用して、日付、時刻、その他の値で作業します。
概要
Foundation フレームワークをインポートする場合、Swift オーバーレイは、多くのブリッジされた参照型の値型を提供します。他の多くの型は、関係を明確にするために名前変更またはネストされています。
ブリッジされた Objective-C 参照型よりも Swift 値型を優先する
以下の表の値型には、対応する参照型と同じ機能があります。NSArray や NSMutableArray などの不変および可変サブクラスを含むクラスクラスタは、単一の値型にブリッジされます。
Swift value type | Objective-C reference type |
AffineTransform | NSAffineTransform |
Array | NSArray |
Calendar | NSCalendar |
CharacterSet | NSCharacterSet |
Data | NSData |
DateComponents | NSDateComponents |
DateInterval | NSDateInterval |
Date | NSDate |
Decimal | NSDecimalNumber |
Dictionary | NSDictionary |
IndexPath | NSIndexPath |
IndexSet | NSIndexSet |
Locale | NSLocale |
Measurement | NSMeasurement |
Notification | NSNotification |
Swift numeric types (Int, Float, and so on) | NSNumber |
PersonNameComponents | NSPersonNameComponents |
Set | NSSet |
String | NSString |
TimeZone | NSTimeZone |
URL | NSURL |
URLComponents | NSURLComponents |
URLQueryItem | NSURLQueryItem |
URLRequest | NSURLRequest |
UUID | NSUUID |
Swift コードが Objective-C の API をインポートすると、インポーターは Foundation の参照型を対応する値型に置き換えます。このため、あなたの独自のコードでブリッジされた参照型を直接使用する必要はまったくありません。
Foundation の参照型に付属する参照の意味が必要な場合は、元の NS クラス名の接頭辞を使用してアクセスできます。as キーワードを使用して、Swift の値型とそれに対応する参照型の間でキャストします。
let dataValue = Data(base64Encoded: myString) let dataReference = dataValue as NSData?
名前が変更された参照型に注意せよ
値型にブリッジ されていない Foundation 型の場合、Swift オーバーレイは、クラスとプロトコル、および関連する列挙型と定数の名前を変更します。これらの型とプロトコルは、以下の例外を除き、NS の接頭辞がありません。
- NSObject、NSAutoreleasePool、NSException、NSProxy など、Objective-C 固有のクラスまたは Objective-C 実行時環境に本質的に関連付けられているクラス
- NSBackgroundActivity、NSUserNotification、NSXPCConnection などのプラットフォームに固有のクラス
Foundation クラスは、多くの場合、列挙型または定数型を宣言します。これらの型をインポートするとき、Swift はそれらを関連した型のネストされた型に移動します。たとえば、NSJSONReadingOptions オプションセットは JSONSerialization.ReadingOptions としてインポートされます。
以下も見よ
ココアフレームワーク
Swift のコードでメモリ管理された Core Foundation 型を直接操作し、必要に応じて保持を手動で処理します。
トップへ
トップへ
トップへ
トップへ
トップへ