fc2ブログ

NSDateクラス

2010. 10. 24
●概要

NSDateオブジェクトは時間の1点を表します。

NSDateはクラスクラスタで、1つのパブリックスーパークラスであり、時間に関する値とプログラムインターフェイスの指定を宣言します。

NSDateを使って生成したオブジェクトはdateオブジェクトと呼ばれます。

これは不変オブジェクトです。

クラスクラスタという性質のため、NSDateクラスが返すオブジェクトは抽象クラスのインスタンスではなく、プライベートサブクラスのインスタンスになります。

たとえdateオブジェクトのクラスがプライベートであってもインターフェイスはパブリックであり、抽象スーパークラスであるNSDateによって宣言されています。

一般的に、dateオブジェクトをインスタンス化する際には、最適なdate~クラスメソッドが呼び出されます。

NSDateは抽象クラスで、日時の生成、比較、表示や、期間の計算などの機能を提供します。

NSDateはプログラムインターフェイスを通して現在の最適なdateオブジェクトを要求して返します。

NSDateは、不変の時点から現在までの時間を表す、軽量なdateオブジェクトを返します。

このクラスは、任意の暦を表す基礎を提供するように設計されています。

NSDateの唯一の原始的なメソッドはtimeIntervalSinceReferenceDateで、他の全てのNSDateインターフェイスメソッドの基礎を提供します。

このメソッドは2001年1月1日(GMT)を基準とした参照時間を返します。

生成した日付を表す文字列を含み、dateFromString:メソッドやstringFromDate:メソッドを使って、NSdateFormatterのインスタンスの解析に使用してください。
(詳細は『Date Formatters』を参照してください)

NSDateのモデルは1582年10月でユリウス暦からグレゴリオ暦に変更されていて、暦の計算を連携して行うNSCalendarへの変換時に適用されます。

注:ただし、いくつかのロケールではグレゴリオ暦の採用時期が異なっており、例えばイギリスでは1752年9月まで切り替えられていませんでした。

NSDateには、『toll-free bridged』の対象としてCocoa FoundationのCFDate型があります。

これはFoudationオブジェクトを橋渡ししてCore Foundationの型に変換し、関数やメソッドで呼び出せることを意味します。

例えば、NSDate *パラメータをメソッドで参照する際、CFDateRefに渡し、CFDateRefパラメータとして関数で参照でき、(コンパイラの警告を抑えるために型変換をして)NSDateインスタンスに渡すこともできます。


サブクラス化の注意

NSDateのサブクラス化の主な理由は、特定の暦のシステムを操作するのに便利なメソッドのクラスを生成することです。

しかし、例えば日付と時刻の細かい時間の断片を取得するなど、他の理由でNSDateクラスのカスタム化する場合もあります。

メソッドのオーバーライド

プライベートまたはパブリックな、動作の異なるNSDateのサブクラスを作る場合、以下の事を行う必要があります。

・(絶対参照日に関連付けした)日付と時刻の値を保持に適したインスタンス変数の宣言。

・正しい日付と時刻の値に基づいたインスタンス変数を提供する、timeIntervalSinceReferenceDateインスタンスメソッドのオーバーライド。

initWithTimeIntervalSinceReferenceDate:をオーバーライドした、指定された初期化メソッド。

暦のシステムを表すサブクラスを生成する場合、この暦の単位に分割した過去と未来の期間のメソッドを定義する必要があります。

何故なら、NSDateクラスはNSCopyingとNSCodingのプロトコルを採用しており、サブクラスはこれらのプロトコルを全てのメソッドで実装する必要があるためです。


特別な考慮事項

サブクラスはNSDateの使う絶対参照日(2001年1月1日 GMT)と異なる参照日を使う事ができます。

その場合はメソッドを実装する際に、timeIntervalSinceReferenceDateinitWithTimeIntervalSinceReferenceDate:を使って絶対参照日を設定します。

この参照日は、メソッドのタイトルの中で参照できる絶対参照日です。

これらのメソッド内で絶対参照日を使用しない場合、生成したサブクラスのNSDateオブジェクトとプライベートサブクラスのNSDateオブジェクトの比較は動作しません。



●タスク

●日付オブジェクトの生成と初期化

+ date
+ dateWithTimeIntervalSinceNow:
+ dateWithTimeInterval:sinceDate:
+ dateWithTimeIntervalSinceReferenceDate:
+ dateWithTimeIntervalSince1970:
– init
– initWithTimeIntervalSinceNow:
– initWithTimeInterval:sinceDate:
– initWithTimeIntervalSinceReferenceDate:
– initWithTimeIntervalSince1970:

●時間の境界の取得

+ distantFuture
+ distantPast

●日付の比較

– isEqualToDate:
– earlierDate:
– laterDate:
– compare:

●時間間隔の取得

– timeIntervalSinceDate:
– timeIntervalSinceNow
+ timeIntervalSinceReferenceDate
– timeIntervalSinceReferenceDate
– timeIntervalSince1970

●時間間隔の追加

– dateByAddingTimeInterval:
– addTimeInterval:

●文字列としての日付の表現

– description
– descriptionWithLocale:



●クラスメソッド

date

+ (id)date

現在の日付と時間の新しい日付セットを生成して返します。

このメソッドはデフォルトの初期化メソッドとして、このクラスのinitを使用します。

以下にdateメソッドを使用した、現在時刻を取得するサンプルコードを示します。

NSDate *today = [NSDate date];


dateWithTimeIntervalSince1970:

+ (id)dateWithTimeIntervalSince1970:(NSTimeInterval)seconds

リファレンス(1970年1月1日0時0分0秒(GMT))に指定した秒数を加えたNSDateオブジェクトセットを作成し、返します。

このメソッドは、BSDシステムから返されるtime_t値からNSDateオブジェクトを作成する際に役立ちます。

seconds:リファレンスの日時に加える秒数を指定します。
現在の日時より以前の日時を得る場合は、負の値を指定します。


dateWithTimeIntervalSinceNow:

+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)seconds

現在の日時に指定した秒数を加えたNSDateオブジェクトセットを作成し、返します。

seconds:現在の日時に加える秒数を指定します。
現在の日時より以前の日時を得る場合は、負の値を指定します。


timeIntervalSinceReferenceDate

+ (NSTimeInterval)timeIntervalSinceReferenceDate

2001年1月1日 GMTから現在までの経過秒数を返します。

戻り値は現在の日時とシステムの絶対参照日(2001年1月1日 GMT)との期間です。

このメソッドはNSDateの基本メソッドです。

NSDateをサブクラス化する際は、このメソッドをオーバーライドして独自の実装をしてください。



●インスタンスメソッド

timeIntervalSinceReferenceDate

- (NSTimeInterval)timeIntervalSinceReferenceDate

2001年1月1日 GMTからレシーバまでの経過秒数を返します。

戻り値はレシーバとシステムの絶対参照日(2001年1月1日 GMT)との期間です。

レシーバが絶対参照日以前の場合、戻り値は負になります。



●定数



●通知



参考文献

NSDate Class Reference

NSCalendarクラス

2010. 10. 24
●概要

カレンダーは、年の分割や長さ、開始時間といったシステムの計算をし、情報をカプセル化します。

カレンダーとカレンダーの計算のサポート、例えば指定したカレンダーユニットと指定した絶対的な時間に追加したユニットとの範囲を決定する際の情報を提供します。

カレンダーでは、日、週、曜日、月、年を数字で表す際、一般的に1を基礎をとしますが、カレンダー固有の例外があります。

順序を表す数字は1から始まります。

このAPIで表されるいくつかのカレンダーは、基本的な単位の概念として年/月/週/日などを持っています。

例えば、1年を12個の月単位の代わりに、4つの四半期単位で表す事もできます。

カレンダーの計算には、NSDateオブジェクトを連携して使います。

例えば、あるカレンダーと他のカレンダー間で日付を分解して変換する際、最初のカレンダーから使う日付の要素を分解し、その後2つ目のカレンダーを分解して使う必要があります。

NSDateは絶対基準と基準日(参照点)の日付と時刻を提供し、カレンダーの計算やユーザへの表示用に特定のカレンダーに利用することができます。

2つのNSCalendarメソッド、dateFromComponents:dateByAddingComponents:toDate:options:は、指定されたNSDateComponentsオブジェクトのパラメータから求められたカレンダーの要素を計算し、日付オブジェクトを返します。

貴方が必要とする(または選択できる)多くの要素を提供する事ができます。

不完全な情報で絶対時刻を計算した場合、カレンダーは通常デフォルト値として0と1を選びますが、これはカレンダー特有の選択です。

矛盾する情報を提供する場合は、特定カレンダーの曖昧さ回避を実行してください(これは一つ以上のパラメータを無視して呼び出します)。

関連メソッド(components:fromDate:components:fromDate:toDate:options:)は、指定した要素をビットマスクパラメータで計算し、NSDateComponentsオブジェクトを返します。

ビットマスクはNSCalendarUnit定数で構成されています。

NSCalendarには、『toll-free bridged』の対象としてCore FoundationのCFCalendar型があります。

これはFoudationオブジェクトを橋渡ししてCore Foundationの型に変換し、関数やメソッドで呼び出せることを意味します。

例えば、NSCalendar *パラメータをメソッドで参照する場合、CFCalendarRefに渡し、CFCalendarRefパラメータとして関数で参照でき、NSCalendarインスタンスに渡す事もできます。



●タスク

●システムロケール情報

+ currentCalendar
+ autoupdatingCurrentCalendar

●カレンダーの初期化

– initWithCalendarIdentifier:
– setFirstWeekday:
– setLocale:
– setMinimumDaysInFirstWeek:
– setTimeZone:

●カレンダーに関する情報の取得

– calendarIdentifier
– firstWeekday
– locale
– maximumRangeOfUnit:
– minimumDaysInFirstWeek
– minimumRangeOfUnit:
– ordinalityOfUnit:inUnit:forDate:
– rangeOfUnit:inUnit:forDate:
– rangeOfUnit:startDate:interval:forDate:
– timeZone

●カレンダーの計算

– components:fromDate:
– components:fromDate:toDate:options:
– dateByAddingComponents:toDate:options:
– dateFromComponents:



●クラスメソッド

currentCalendar

+ (id)currentCalendar

現在のユーザ環境(ロケール)の論理的なカレンダーを返します。

環境設定でユーザが選択している地域・言語設定に依存したカレンダーを返します。

このカレンダーの設定は、環境設定が変更されても変わりません。
(環境設定の変更に対応する場合はautoupdatingCurrentCalendarを使用してください)



●インスタンスメソッド

components:fromDate:

- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date

指定したコンポーネント(要素)で構成されたNSDateComponentsオブジェクトを返します。

dateがレシーバの範囲を超えていたり、計算できなかった場合はnilを返します。

グレゴリオ暦で年月日を取得する場合は下記のようになります。

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDate *date = [NSDate date];
NSDateComponents *comps = [gregorian components:unitFlags fromDate];

unitFlags:構成する日付コンポーネントを指定します。
or演算子『|』で複数のNSCalendarUnit定数を指定可能です。

date:計算する日時を指定します。


initWithCalendarIdentifier:

- (id)initWithCalendarIdentifier:(NSString *)string

新規生成されたNSCalendarオブジェクトを、指定された識別子のカレンダーで初期化します。

戻り値は初期化されたカレンダー、または識別子が不明な場合はnilを返します。
(例えば、認識できない文字列や、現在のOSのバージョンでサポートしていないカレンダーを指定した場合)

string:新しいカレンダーの識別子を指定します。



●定数



参考文献

NSCalendar Class Reference

NSNumberクラス

2010. 10. 24
●概要

NSNumberは、Cのスカラー(数値)型の値を提供するNSValueのサブクラスです。

符号付きまたは符号無しのchar、short int、int、long int、long long int、float、double、BOOLなどの値の設定とアクセスを行うメソッドを定義します。
(数値オブジェクトは、必ずしも生成時の型を保持するものではないことに注意してください)

またcompare:メソッドは、二つのNSNumberオブジェクトの順序を決定します。

NSNumberのサブクラスの生成

他のクラスクラスタと同様に、NSNumberのサブクラスを生成する場合は、スーパークラスであるNSValueの原始的なメソッドをオーバーライドする必要があります。

更に非原始的なメソッドの抽象的な実装を利用するために、NSValueメソッドのobjCTypeを使って戻り値に制限を設定した実装をすることができます。

有効な戻り値は『 c 』『 C 』『 s 』『 S 』『 i 』『 I 』『 l 』『 L 』『 q 』『 Q 』『 f 』『 d 』となります。



●タスク

●NSNumberオブジェクトの生成

+ numberWithBool:
+ numberWithChar:
+ numberWithDouble:
+ numberWithFloat:
+ numberWithInt:
+ numberWithInteger:
+ numberWithLong:
+ numberWithLongLong:
+ numberWithShort:
+ numberWithUnsignedChar:
+ numberWithUnsignedInt:
+ numberWithUnsignedInteger:
+ numberWithUnsignedLong:
+ numberWithUnsignedLongLong:
+ numberWithUnsignedShort:

●NSNumberオブジェクトの初期化

– initWithBool:
– initWithChar:
– initWithDouble:
– initWithFloat:
– initWithInt:
– initWithInteger:
– initWithLong:
– initWithLongLong:
– initWithShort:
– initWithUnsignedChar:
– initWithUnsignedInt:
– initWithUnsignedInteger:
– initWithUnsignedLong:
– initWithUnsignedLongLong:
– initWithUnsignedShort:

●数値へのアクセス

– boolValue
– charValue
– decimalValue
– doubleValue
– floatValue
– intValue
– integerValue
– longLongValue
– longValue
– shortValue
– unsignedCharValue
– unsignedIntegerValue
– unsignedIntValue
– unsignedLongLongValue
– unsignedLongValue
– unsignedShortValue

●文字列表現の取得

– descriptionWithLocale:
– stringValue

●NSNumberオブジェクトの比較

– compare:
– isEqualToNumber:

●型情報へのアクセス

– objCType



●クラスメソッド

numberWithBool:

+ (NSNumber *)numberWithBool:(BOOL)value

指定したBOOL値のNSNumberオブジェクトを作成し、返します。

value:BOOL値を指定します。


numberWithChar:

+ (NSNumber *)numberWithChar:(char)value

指定したchar値(符号有り文字)のNSNumberオブジェクトを作成し、返します。

value:char値を指定します。


numberWithFloat:

+ (NSNumber *)numberWithFloat:(float)value

指定したfloat値(浮動小数点実数)のNSNumberオブジェクトを作成し、返します。

value:float値を指定します。


numberWithInt:

+ (NSNumber *)numberWithInt:(int)value

指定したint値(符号有り整数)のNSNumberオブジェクトを作成し、返します。

value:int値を指定します。



●インスタンスメソッド

・boolValue

- (BOOL)boolValue

レシーバのNSNumberオブジェクトをBOOL値にして返します。


charValue

- (char)charValue

レシーバのNSNumberオブジェクトをchar値にして返します。


floatValue

- (float)floatValue

レシーバのNSNumberオブジェクトをfloat値にして返します。


initWithInt:

- (id)initWithInt:(int)value

指定した値を符号付整数として扱い、初期化したNSNumberオブジェクトを返します。

value:新しい数値の値を指定します。


integerValue

- (NSInteger)integerValue

レシーバの値をNSIntegerとして返します。

戻り値は、必要に応じてNSIntegerに変換したレシーバの値になります。


intValue

- (int)intValue

レシーバのNSNumberオブジェクトをint値にして返します。


stringValue

- (NSString *)stringValue

人が読める文字列として、レシーバの値を返します。

生成にはdescriptionWithLocale:のロケールをnilとして呼び出します。



参考文献

NSNumber Class Reference

NSValueクラス

2010. 10. 23
●概要

NSValueオブジェクトは、単一のCまたはObjective-Cデータアイテムの単純なコンテナです。

int、float、char等のスカラ型のポインタや構造体、オブジェクトを保持することができます。

このクラスの目的は、NSArrayやNSSetのインスタンス等のコレクションに要素を追加するには、アイテムのデータ型をオブジェクトにする必要があるためです。

NSValueオブジェクトは常に不変です。



●タスク

●NSValueの生成

– initWithBytes:objCType:
+ valueWithBytes:objCType:
+ value:withObjCType:
+ valueWithNonretainedObject:
+ valueWithPointer:
+ valueWithRange:

●データへのアクセス

– getValue:
– nonretainedObjectValue
– objCType
– pointerValue
– rangeValue

●オブジェクトの比較

– isEqualToValue:



●クラスメソッド

valueWithRange:

+ (NSValue *)valueWithRange:(NSRange)range

指定したNSRange構造体のNSValueオブジェクトを作成し、返します。

range:NSRange構造体の範囲を指定します。



●インスタンスメソッド

rangeValue

- (NSRange)rangeValue

レシーバのNSValueオブジェクトをNSRange構造体にして返します。



参考文献

NSValue Class Reference

NSKeyedArchiverクラス

2010. 10. 23
●概要

NSKeyedArchiverはNSCoderの具象サブクラスで、オブジェクト(とスカラー値)をアーキテクチャに依存しないフォーマットでエンコードし、ファイルに格納することができる方法を提供します。

オブジェクトの設定をアーカイブ化する場合、各オブジェクトのクラス情報とインスタンス変数をアーカイブに記述します。

NSKeyedArchiverと対になるクラスはNSKeyedUnarchiverで、アーカイブ内のデータをデコードし、元の設定と同じオブジェクトの設定を生成します。

キー付アーカイブはキー無アーカイブと異なり、全てのオブジェクトと値にはアーカイブをエンコードする時に名前またはキーが与えられます。

キー無アーカイブをデコードする時は、エンコードした時と同じ順序で値がデコードされます。

キー付アーカイブをデコードする時は、名前を要求して値を取得するので、全ての値は順序に関係無くデコードすることができます。

したがってキー付アーカイブは、より良い前方または後方互換性を持ったサポートを提供します。

エンコードする値に指定するキーは、現在エンコードするオブジェクトのスコープ内で唯一のものである必要があります。

キー付アーカイブは階層構造になっているので、たとえオブジェクトAとオブジェクトBが同じクラスのインスタンスであっても、インスタンス変数をエンコードする際に、オブジェクトAで使用されているキーとオブジェクトBで使用されているキーが競合してはいけません。

しかし単一オブジェクトの場合、スーパークラスで使用されているキーとサブクラスで使用されているキーが競合することはできます。

NSArchiverオブジェクトは、提供したファイルまたは可変データオブジェクト(NSMutableDataのインスタンス)にアーカイブデータを書き込むことができます。



●タスク

●NSKeyedArchiverオブジェクトの初期化

– initForWritingWithMutableData:

●データのアーカイブ

+ archivedDataWithRootObject:
+ archiveRootObject:toFile:
– finishEncoding
– outputFormat
– setOutputFormat:

●データとオブジェクトのエンコード

– encodeBool:forKey:
– encodeBytes:length:forKey:
– encodeConditionalObject:forKey:
– encodeDouble:forKey:
– encodeFloat:forKey:
– encodeInt:forKey:
– encodeInt32:forKey:
– encodeInt64:forKey:
– encodeObject:forKey:

●デリゲートの管理

– delegate
– setDelegate:

●クラスとクラス名の管理

+ setClassName:forClass:
+ classNameForClass:
– setClassName:forClass:
– classNameForClass:



●クラスメソッド

archivedDataWithRootObject:

+ (NSData *)archivedDataWithRootObject:(id)rootObject

指定したオブジェクトグラフのルートオブジェクトをエンコード(アーカイブ)し、NSDataオブジェクトにして返します。

アーカイブのフォーマットはNSPropertyListBinaryFormat_v1_0で定義されています。

rootObject:アーカイブするオブジェクトグラフのルートオブジェクトを指定します。



●インスタンスメソッド

encodeInt:forKey:

- (void)encodeInt:(int)intv forKey:(NSString *)key

指定したint値を関連付けするキーを指定してエンコードします。

intv:エンコードする値を指定します。

key:intvに関連付けするキーを指定します。
この値はnil以外にする必要があります。


encodeObject:forKey:

- (void)encodeObject:(id)objv forKey:(NSString *)key

指定したオブジェクトを関連付けするキーを指定してエンコードします。

objv:エンコードする値を指定します。
この値はnilになる場合があります。

key:objvに関連付けするキーを指定します。
この値はnil以外にする必要があります。


finishEncoding

- (void)finishEncoding

データストリームの最終的な構築をレシーバに指示します。

このメソッドを呼び出した後で、それ以上の値のエンコードを行うことはできません。

完了してからこのメソッドを呼び出す必要があります。


initForWritingWithMutableData:

- (id)initForWritingWithMutableData:(NSMutableData *)data

指定した可変データオブジェクトに、アーカイブをエンコードするための初期化をし、レシーバを返します。

戻り値はレシーバで、dataにアーカイブをエンコードするための初期化が行われています。

データのエンコードが終了した時、dataへの入力が完了した時点でfinishEncodingを呼び出す必要があります。

レシーバのフォーマットはNSPropertyListBinaryFormat_v1_0です。

data:アーカイブを書き込む可変データオブジェクトを指定します。



●定数

Keyed Archiving Exception Names

アーカイブの生成で問題が生じた場合に、NSKeyedArchiverによって発生した例外の名前です。

extern NSString *NSInvalidArchiveOperationException;

NSInvalidArchiveOperationException
アーカイブの生成で問題が生じた場合に、NSKeyedArchiverによって発生した例外の名前です。



参考文献

NSKeyedArchiver Class Reference

NSKeyedUnarchiverクラス

2010. 10. 23
●概要

NSKeyedUnarchiverはNSCoderの具象サブクラスで、キー付アーカイブから指定されたオブジェクト(とスカラー値)の設定をデコードするメソッドを定義します。

このようなアーカイブは、NSKeyedArchiverクラスのインスタンスによって生成されます。

キー付アーカイブは、オブジェクトの階層としてエンコードされます。

階層内の各オブジェクトは他のオブジェクトがエンコードされている名前空間として利用できます。

デコード化できるオブジェクトは、特定オブジェクトの直接スコープ内でエンコードされたものに制限されています。

オブジェクトが階層内の別の場所でエンコードされていた場合、この特定オブジェクトより高かったり、低かったり並列の場合はアクセスできません。

この場合、インスタンス変数をエンコードするための特定オブジェクトで使用されるキーは、そのオブジェクトのスコープ内で唯一である必要があります。

アーカイブ内に存在しないキーを使用してこのクラスのdecode~メソッドの一つを呼び出すと、不正な値が返されます。

この値はデコードの型によって異なります。

例えばアーカイブ内に存在しないキーで呼び出すと、decodeBoolForKey:ではNOを、decodeIntForKey:では0を、decodeObjectForKey:ではnilを返します。

NSKeyedUnarchiverがサポートする型は限定されています。

値をエンコードする場合の整数の型は、標準intか明示的に32bitまたは64bit整数かどうかを、どの整数デコードメソッドを使ってデコードするかで決めることができます。

同様に、floatまたはdoubleの値のエンコードも、floatまたはdouble値のどちらかとしてデコードすることができます。

エンコードした値が大きくて強制型に収まらない場合、デコード化メソッドはNSRangeExceptionを発生させます。

さらに、互換性の無い型に値を強制した場合、例えばfloat値としてint値をデコードしようとすると、デコード化メソッドはNSInvalidUnarchiveOperationExceptionを発生させます。



●タスク

●キーによるアンアーカイバの初期化

– initForReadingWithData:

●データのアンアーカイブ

+ unarchiveObjectWithData:
+ unarchiveObjectWithFile:

●データのデコード

– containsValueForKey:
– decodeBoolForKey:
– decodeBytesForKey:returnedLength:
– decodeDoubleForKey:
– decodeFloatForKey:
– decodeIntForKey:
– decodeInt32ForKey:
– decodeInt64ForKey:
– decodeObjectForKey:
– finishDecoding

●デリゲートの管理

– delegate
– setDelegate:

●クラス名の管理

+ setClass:forClassName:
+ classForClassName:
– setClass:forClassName:
– classForClassName:



●クラスメソッド

unarchiveObjectWithData:

+ (id)unarchiveObjectWithData:(NSData *)data

NSKeyedArchiverで格納された、エンコードされているオブジェクトグラフをデコードして返します。

デコードできなかった場合はNSInvalidArchiveOperationExceptionを発生させます。

data:NSKeyedArchiverでエンコードされたオブジェクトグラフを指定します



●インスタンスメソッド

decodeIntForKey:

- (int)decodeIntForKey:(NSString *)key

指定したキーに関連付けされた整数値をデコードします。

戻り値はkeyに関連付けされた整数値です。

keyが存在しなかった場合は0を返します。

アーカイブされていた値が整数でも異なるサイズでエンコードされていた場合、型は変換されます。

アーカイブされていた値がデフォルトの整数のサイズよりも大きくて収まらない場合、メソッドはNSRangeExceptionを発生させます。

key:現在デコードするスコープ内にアーカイブされているキーを指定します。
keyはnil以外である必要があります。


decodeObjectForKey:

- (id)decodeObjectForKey:(NSString *)key

指定したキーに関連付けされたオブジェクトをデコードして返します。

戻り値はkeyに関連付けされたオブジェクトです。

keyが存在しなかった場合、またはkeyがnilの場合はnilを返します。

key:現在デコードするスコープ内にアーカイブされているキーを指定します。
keyはnil以外である必要があります。


finishDecoding

- (void)finishDecoding

オブジェクトのデコード化が完了したことをレシーバに伝えます。

このメソッドを呼び出すと、レシーバはデリゲートに通知し、アーカイブの最終的な操作を実行します。

このメソッドを一度呼び出すと、レシーバはそれ以降値のデコードをすることができません。


initForReadingWithData:

- (id)initForReadingWithData:(NSData *)data

事前にNSKeyedArchiverによってエンコードされたアーカイブをデコードしレシーバを初期化します。

戻り値は、dataをデコード化して初期化したNSKeyedUnarchiverオブジェクトです。

データのデコード化が完了したら、finishDecodingを呼び出す必要があります。

dataが有効なアーカイブでない場合、このメソッドはNSInvalidArchiveOperationExceptionを発生させます。

dataNSKeyedArchiverによって事前にエンコードされたアーカイブを指定します。



●定数

Keyed Unarchiving Exception Names

アーカイブの解凍で問題が生じた場合に、NSKeyedUnarchiverによって発生した例外の名前です。

NSString *NSInvalidUnarchiveOperationException;

NSInvalidUnarchiveOperationException
アーカイブの解凍で問題が生じた場合に、NSKeyedUnarchiverによって発生した例外の名前です。



参考文献

NSKeyedUnarchiver Class Reference

Wikipedia/名前空間

NSCodingプロトコル

2010. 10. 23
●概要

NSCodingプロトコルは、クラスのインスタンスがエンコードとデコードができるようにするために、クラスが実装する必要がある2つのメソッドを宣言します。

この機能はアーカイブ化(オブジェクトと他の構造体をディスクに格納する)とディストリビューション(オブジェクトを異なるアドレス空間にコピーする)の基礎を提供します。

オブジェクト指向設計の原理に従い、エンコードまたはデコードされたオブジェクトは、インスタンス変数のエンコード化やデコード化をする責任があります。

コーダーはオブジェクトにencodeWithCoder:またはinitWithCoder:を呼び出すように指示します。

encodeWithCoder:は、提供されたコーダーにインスタンス変数のエンコードをするよう、オブジェクトに指示します。
(オブジェクトはこのメソッドを何回でも受け取ることができます)

initWithCoder:は、提供されたコーダーのデータから自身を初期化するよう、オブジェクトに指示します。
(例えば、他の初期化メソッドを置き換わり、一つのオブジェクトに対し一回のみ送信します)

コード化する全てのオブジェクトクラスは、NSCodingプロトコルを採用し、これらのメソッドを実装する必要があります。

コーダーのサポートするアーカイブ化の可能な型を考慮することが重要です。

Mac OS X version 10.2以降はキーによるアーカイブ化が推奨されます。

場合によっては古典的なアーカイブをサポートする必要があります。

詳細は『Archives and Serializations Programming Guide』を参照してください、



●タスク

●コーダによる初期化

– initWithCoder:

●コーダによるエンコード

– encodeWithCoder:



●インスタンスメソッド

encodeWithCoder:

- (void)encodeWithCoder:(NSCoder *)encoder

指定したアーカイバでレシーバをエンコード(アーカイブ)します。

encoder:アーカイバオブジェクト(アーカーブするNSCoderのインスタンス)を指定します。


initWithCoder:

- (id)initWithCoder:(NSCoder *)decoder

指定したアンアーカイバの中のデータから、初期化したオブジェクトを返します。

decoder:アンアーカイバオブジェクトを指定します。



参考文献

NSCoding Protocol Reference

Cocoaリファレンス日本語化計画/NSCodingプロトコルリファレンス

NSCoderクラス

2010. 10. 23
●概要

NSCoderは抽象クラスで、オブジェクトや他のObjective-Cデータアイテムと、メモリやいくつかの他のフォーマット間の転送で、具象サブクラスに使用されるインターフェイスを宣言します。

この機能はアーカイブ化(オブジェクトとデータアイテムをディスクに格納する)とディストリビューション(オブジェクトやデータアイテムと、異なるプロセスまたはスレッド間でコピーする)の基礎を提供します。

これらの目的にために具象サブクラス(NSArchiver、NSUnarchiver、NSKeyedArchiver、NSKeyedUnarchiver、NSPortCoder)はFoundationによって提供されます。

NSCoderの具象サブクラスは一般的にコーダークラス、これらのクラスのインスタンスはコーダーオブジェクト(または単にコーダー)と呼ばれます。

コーダーオブジェクトの中で、値のみエンコードできるものをエンコーダーオブジェクト、値のみデコードできるものをデコーダーオブジェクトと呼びます。

NSCoderは、オブジェクト、スカラー、C配列、構造体、文字列、そしてこれらの型のポインタを処理します。

プラットフォーム間で実装の異なる型、例えばunion(共有体)、void *、関数ポインタ、多重間接参照ポインタは処理しません。

コーダーオブジェクトはデータと一緒にオブジェクトの型情報も格納するため、通常はストリームにエンコードした元オブジェクトと、バイト列からデコードしたストリームは同じクラスになります。

オブジェクトはエンコード時にクラスを変更することができます。
(詳細は『Archives and Serializations Programming Guide』を参照してください)

サブクラス化の注意

NSCoderのサブクラスの生成については、『Archives and Serializations Programming Guide』の『Subclassing NSCoder』を参照してください。



●タスク

●コーダーのテスト

– allowsKeyedCoding
– containsValueForKey:

●データのエンコード

– encodeArrayOfObjCType:count:at:
– encodeBool:forKey:
– encodeBycopyObject:
– encodeByrefObject:
– encodeBytes:length:
– encodeBytes:length:forKey:
– encodeConditionalObject:
– encodeConditionalObject:forKey:
– encodeDataObject:
– encodeDouble:forKey:
– encodeFloat:forKey:
– encodeInt:forKey:
– encodeInteger:forKey:
– encodeInt32:forKey:
– encodeInt64:forKey:
– encodeObject:
– encodeObject:forKey:
– encodeRootObject:
– encodeValueOfObjCType:at:
– encodeValuesOfObjCTypes:

●データのデコード

– decodeArrayOfObjCType:count:at:
– decodeBoolForKey:
– decodeBytesForKey:returnedLength:
– decodeBytesWithReturnedLength:
– decodeDataObject
– decodeDoubleForKey:
– decodeFloatForKey:
– decodeIntForKey:
– decodeIntegerForKey:
– decodeInt32ForKey:
– decodeInt64ForKey:
– decodeObject
– decodeObjectForKey:
– decodeValueOfObjCType:at:
– decodeValuesOfObjCTypes:

●ゾーンの管理

– objectZone
– setObjectZone:

●バージョン情報の取得

– systemVersion
– versionForClassName:



●インスタンスメソッド

decodeBoolForKey:

- (BOOL)decodeBoolForKey:(NSString *)key

指定したキーと関連付けされているブール値をデコードします。

keyに関連付けされているものが無ければNOを返します。

key:現在のアーカイブの中でデコード範囲内にあるキーを指定します。
(nilは指定できません)


decodeIntForKey:

- (int)decodeIntForKey:(NSString *)key

指定したキーと関連付けされているint値をデコードします。

keyに関連付けされているものが無ければ0を返します。

アーカイブのint値が異なるサイズだった場合は矯正されますが、値が大き過ぎてデフォルトのサイズを超える場合はNSRangeExceptionを発生させます。

key:現在のアーカイブの中でデコード範囲内にあるキーを指定します。
(nilは指定できません)


decodeObjectForKey:

- (id)decodeObjectForKey:(NSString *)key

指定したキーと関連付けされているオブジェクトをデコードして返します。

keyに関連付けされているものが無い、またはnilの場合はnilを返します。

key:現在のアーカイブの中でデコード範囲内にあるキーを指定します。
(nilは指定できません)


encodeBool:forKey:

- (void)encodeBool:(BOOL)boolv forKey:(NSString *)key

エンコードするブール値と関連付けするキーを指定します。

boolv:エンコードするブール値を指定します。

key:ブール値に関連付けるキーを指定します。
(nilは指定できません)


encodeInt:forKey:

- (void)encodeInt:(int)intv forKey:(NSString *)key

エンコードするint値と関連付けするキーを指定します。

intv:エンコードするint値を指定します。

key:int値に関連付けるキーを指定します。
(nilは指定できません)


encodeObject:forKey:

- (void)encodeObject:(id)objv forKey:(NSString *)key

エンコードするオブジェクトと関連付けするキーを指定します。

objv:エンコードするオブジェクトを指定します。
(nilは指定できません)

key:オブジェクトに関連付けるキーを指定します。
(nilは指定できません)



参考文献

NSCoder Class Reference

Cocoaリファレンス日本語化計画/NSCoderプロトコルリファレンス

NSFileHandleクラス

2010. 10. 23
●概要

NSFileHandleオブジェクトは、ファイルまたは通信チャンネルを開いてアクセスするための、オブジェクト指向のラッパーを提供します。

着信接続を受信するNSFileHandleオブジェクトの生成は、サンプルプロジェクトのPictureSharingを参照してください。
(ファイルハンドルオブジェクトは、BSDコールを介して取得したソケットから初期化されます)

:NSFileHandleオブジェクトの解放は、initWithFileDescriptor:またはinitWithFileDescriptor:closeOnDealloc:の引数にパラーメタとしてNOを渡して生成されたNSFileHandleオブジェクトを除いて、記述子を削除し、開いているファイルまたはチャンネルを閉じてください。



●タスク

●ファイルハンドルの取得

+ fileHandleForReadingAtPath:
+ fileHandleForReadingFromURL:error:
+ fileHandleForWritingAtPath:
+ fileHandleForWritingToURL:error:
+ fileHandleForUpdatingAtPath:
+ fileHandleForUpdatingURL:error:
+ fileHandleWithStandardError
+ fileHandleWithStandardInput
+ fileHandleWithStandardOutput
+ fileHandleWithNullDevice

●ファイルハンドルの生成

– initWithFileDescriptor:
– initWithFileDescriptor:closeOnDealloc:

●ファイル記述子の取得

– fileDescriptor

●ファイルハンドルからの読み込み

– availableData
– readDataToEndOfFile
– readDataOfLength:

●ファイルハンドルへの書き込み

– writeData:

●非同期通信

– acceptConnectionInBackgroundAndNotify
– acceptConnectionInBackgroundAndNotifyForModes:
– readInBackgroundAndNotify
– readInBackgroundAndNotifyForModes:
– readToEndOfFileInBackgroundAndNotify
– readToEndOfFileInBackgroundAndNotifyForModes:
– waitForDataInBackgroundAndNotify
– waitForDataInBackgroundAndNotifyForModes:

●ファイル内の検索

– offsetInFile
– seekToEndOfFile
– seekToFileOffset:

●ファイルの操作

– closeFile
– synchronizeFile
– truncateFileAtOffset:



●クラスメソッド

fileHandleForReadingAtPath:

+ (id)fileHandleForReadingAtPath:(NSString *)path

読み込み用として、指定したパスにあるファイルやデバイス、または名付けたソケットのファイルハンドルを初期化して返します。

指定したパスにファイルが無い場合はnilを返します。

ポインタはファイルの先頭に設定されます。

返されるオブジェクトはNSFileHandleクラスの『read~』メソッドのみ応答できます。

path:アクセスするファイルやデバイス、または名付けたソケットへのパスを指定します。


fileHandleForWritingAtPath:

+ (id)fileHandleForWritingToPath:(NSString *)path

書き込み用として、指定したパスにあるファイルやデバイス、または名付けたソケットのファイルハンドルを初期化して返します。

指定したパスにファイルが無い場合はnilを返します。

ポインタはファイルの先頭に設定されます。

返されるオブジェクトはwriteData:のみ応答できます。

path:アクセスするファイルやデバイス、または名付けたソケットへのパスを指定します。



●インスタンスメソッド

closeFile

- (void)closeFile

書き込み用として接続しているファイルや通信チャンネルとのアクセスを切断します。

ファイルや通信チャンネルを使い終わったらファイルハンドルにレシーバを閉じる指示を出します。

closeFileで閉じたファイルに読み込みしようとすると例外が発生します。


readDataOfLength:

- (NSData *)readDataOfLength:(NSUInteger)length

指定した長さのバイト数のデータをレシーバから読み込みます。

ファイルの場合、ポインタから指定した長さかファイル終端の、どちらか早い方が検出された分を読み込みます。

ポインタがファイルの終端であったり、通信チャンネルがファイルの終端を示している場合は、空のNSDataを返します。

ファイルハンドルの型が特定できない、またはファイルやチャンネルが読み込めなかった場合は、NSFileHandleOperationExceptionを発生させます。

length:レシーバから読み込むバイト数を指定します。


writeData:

- (void)writeData:(NSData *)data

指定したデータをファイル、デバイス、パイプまたはソケットに書き込みます。

ファイルの場合、現在のポインタの位置からデータを書き込みます。

データを書き込んだ後、書き込んだバイト数の分ファイルのポインタを移動します。

ファイル記述子が閉じていたり、有効でなかったり、レシーバがパイプやソケットのエンドポイントを示していたり、ファイルシステムに空き領域が無かったり、その他書き込みエラーがあった場合は例外を発生させます。

data:書き込み用データを指定します。



●定数



●通知



参考文献

NSFileHandle Class Reference

NSDataクラス

2010. 10. 23
●概要

NSDataとその可変サブクラスNSMutableDataはデータオブジェクトを提供し、バイトバッファのためのオブジェクト指向のラッパーです。

データオブジェクトは、単純に割り当てられたバッファ(ポインタが埋め込まれていないデータ)を取り出し、Foundationオブジェクトとして動作します。

NSDataは静的なデータオブジェクトを生成し、NSMutableDataは動的なデータオブジェクトを生成します。

NSDataとNSMutableDataは、通常データストレージ用に使用されており、また分散オブジェクトアプリケーションでも有用で、データオブジェクト内に含まれるデータをアプリケーション間でコピーや移動をすることができます。

32bitのCocoaではデータのサイズが理論上2GBに制限されており(実際には他のオブジェクトにもメモリが使用されるため、これより小さくなります)、64bitのCocoaではデータのサイズが理論上約8EBに制限されています(実際には制限が要因ではありません)。

NSDataは『toll-free bridged』の対象としてCore FoundationのCFDataがあります。

これはFoudationオブジェクトを橋渡ししてCore Foundationの型に変換し、関数やメソッドで呼び出せることを意味します。

したがってNSData *パラメータを参照する際、CFDataRefに渡し、CFDataRefパラメータとして参照でき、(コンパイラの警告を抑えるために型変換をして)NSDataインスタンスに渡すこともできます。

この橋渡しは、NSDataの実際のサブクラスに適用されます。

データ型の相互変換についての詳細はtoll-free bridgingを参照してください。



●タスク

●データオブジェクトの生成

+ data
+ dataWithBytes:length:
+ dataWithBytesNoCopy:length:
+ dataWithBytesNoCopy:length:freeWhenDone:
+ dataWithContentsOfFile:
+ dataWithContentsOfFile:options:error:
+ dataWithContentsOfMappedFile:
+ dataWithContentsOfURL:
+ dataWithContentsOfURL:options:error:
+ dataWithData:
– initWithBytes:length:
– initWithBytesNoCopy:length:
– initWithBytesNoCopy:length:freeWhenDone:
– initWithContentsOfFile:
– initWithContentsOfFile:options:error:
– initWithContentsOfMappedFile:
– initWithContentsOfURL:
– initWithContentsOfURL:options:error:
– initWithData:

●データへのアクセス

– bytes
– description
– getBytes:length:
– getBytes:range:
– subdataWithRange:
– rangeOfData:options:range:
– getBytes:

●データのテスト

– isEqualToData:
– length

●データの格納

– writeToFile:atomically:
– writeToFile:options:error:
– writeToURL:atomically:
– writeToURL:options:error:



●クラスメソッド

dataWithBytes:length:

+ (id)dataWithBytes:(const void *)bytes length:(NSUInteger)length

指定した長さのバイト数をバッファからコピーして、それを格納したデータオブジェクトを作成して返します。

データオブジェクトが作成できなかった場合はnilを返します。

bytes:コピーするデータの入ったバッファを指定します。

length:バッファからコピーするバイト数を指定します。
バッファのサイズを超える長さを指定してはいけません。



●インスタンスメソッド

initWithContentsOfFile:

- (id)initWithContentsOfFile:(NSString *)path

指定したパスにあるファイルからデータを読み込み、初期化したデータオブジェクトを返します。

戻り値は、pathで指定されたファイルから読み込んだデータで初期化したデータオブジェクトです。

返すオブジェクトは、元のレシーバとは異なる場合があります。

このメソッドはinitWithContentsOfFile:options:error:のオプションが無いものと同じです。

path:データを読み込むファイルの絶対パスを指定します。


initWithContentsOfFile:options:error:

- (id)initWithContentsOfFile:(NSString *)path options:(NSDataReadingOptions)mask error:(NSError **)errorPtr

指定したパスにあるファイルからデータを読み込み、初期化したデータオブジェクトを返します。

戻り値は、pathで指定されたファイルから読み込んだデータで初期化したデータオブジェクトです。

返すオブジェクトは、元のレシーバとは異なる場合があります。

path:データを読み込むファイルの絶対パスを指定します。

mask:データを読み込むためのオプションとしてマスクを指定します。
定数の構成は『NSDataReadingOptions』に記述されています。

errorPtr:エラーが発生した場合、問題の記述を含むNSErrorオブジェクトを返します。


writeToFile:atomically:

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag

レシーバのバイト列を、指定したパスのファイルに書き込みます。

成功した場合はYESを、失敗した場合はNOを返します。

path:レシーバのバイト列を書き込むファイルパスを指定します。
ファイルパスにチルダ『~』が含まれる場合は、stringByExpandingTildeInPathメソッドで変換してください。

atomically:YESの場合、一度予備ファイルに書き出してから、本来指定したパスのファイルに書き換えます。
そのため、書き出し途中にクラッシュしても元のパスのファイル内容は保証されます。
NOの場合、直接指定したパスのファイルに書き出します。



●定数

NSDataReadingOptions

NSDataオブジェクトの読み込みに使用するメソッドのオプションです。

enum {
    NSDataReadingMapped = 1UL << 0,
    NSDataReadingUncached = 1UL << 1
    NSMappedRead = NSDataReadingMapped,
    NSUncachedRead = NSDataReadingUncached
};
typedef NSUInteger NSDataReadingOptions;

NSDataReadingMapped
もし可能であれば、仮想メモリにファイルをマッピングするように指示します。

NSDataReadingUncached
ファイルシステムのキャッシュにファイルを格納しないように指示します。
データは一度読み込んだら破棄することで、パフォーマンスを向上させます。

NSMappedRead
この名称は非推奨です。
代わりにNSDataReadingMappedを使用してください。

NSUncachedRead
この名称は非推奨です。
代わりにNSDataReadingUncachedを使用してください。



参考文献

NSData Class Reference

Calendar
09 | 2010/10 | 11
Sun Mon Tue Wed Thu Fri Sat
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -
Recent Articles
Wish List
iOS/iPadOS Devices
Twine
Twine Reference
1. 序章
2. はじめに
2.1. Twineのインストール
2.2. 基本コンセプト
2.3. Twineを使いこなす
2.4. Twineのアップデート
2.5. Twineのアンインストール
2.6. Twineの古いバージョンを使う
3. ストーリーライブラリを使う
3.1. ストーリーの表示
3.2. ストーリーの作成、コピー、インポート
3.3. ストーリーの編集
3.4. ストーリー名の変更
3.5. ストーリーのアーカイブとエクスポート
3.6. ストーリーの削除
3.7. ストーリーへのタグ付け
3.8. ライブラリの場所を変更する
4. ストーリーの編集
4.1. ストーリーマップのナビゲーション
4.2. 取り消しとやり直し
4.3. パッセージの選択と移動
4.4. パッセージの編集
4.5. パッセージのリンク
4.6. パッセージの削除
4.7. パッセージのタグ付け
4.8. テキストの検索と置換
4.9. ストーリー名の変更
4.10. ストーリーフォーマットの変更
4.11. ストーリーの統計の表示
4.12. ストーリーのJavaScriptとCSSを編集する
5. 作品の公開出力
5.1. ストーリーのテスト
5.2. ストーリーの校正
5.3. ストーリーのプレイ
5.4. ストーリーの公開出力
5.5. スクラッチフォルダ
6. ストーリーフォーマットの管理
6.1. ストーリーフォーマットの表示
6.2. デフォルトのストーリーフォーマットの変更
6.3. 校正フォーマットの変更
6.4. ストーリーフォーマットの追加
6.5. ストーリーフォーマットの削除
6.6. ストーリーフォーマットの拡張機能を無効にする
6.7. Twineがストーリーフォーマットのバージョンを管理する方法
7. Twineのカスタマイズ
7.1. 環境設定の設定
7.2. コマンドラインスイッチ
7.3. 高度なカスタマイズ
8. 制限事項
8.1. 大きなストーリー
8.2. ストーリーの組み合わせ
8.3. ストーリーの共同編集
8.4. 画像とマルチメディアの使用
8.5. ソースコントロールでの作業
9. 問題のトラブルシューティング
9.1. バックアップ
9.2. ローカルストレージの直接表示
9.3. 編集中にエラーメッセージが表示される場合
9.4. Twineが起動しない場合
9.5. Twineがあなたのストーリーを失ったら
9.6. ストーリーが破損している場合
9.7. Twineの外観に不具合がある場合
10. リリースノート
10.1. バージョン 2.8
10.2. バージョン 2.7
10.3. バージョン 2.6
10.4. バージョン 2.5
10.5. バージョン 2.4
10.6. バージョン 2.3
10.7. バージョン 2.2
10.8. バージョン 2.1
10.9. バージョン 2.0
10.10. バージョン 1.0
10.11. Tweebox バージョン

Twine Cookbook
詳解Swift
詳解Swift第5版(01)〜Swiftでプログラミング
詳解Swift第5版(02)〜関数
詳解Swift第5版(03)〜構造体
詳解Swift第5版(04)〜オプショナル
詳解Swift第5版(05)〜プロトコル
詳解Swift第5版(06)〜基本的なデータ型
詳解Swift第5版(07)〜パターン
詳解Swift第5版(08)〜クラスと継承
詳解Swift第5版(09)〜メモリ管理
詳解Swift第5版(10)〜拡張
詳解Swift第5版(11)〜エラー処理
詳解Swift第5版(12)〜クロージャ
詳解Swift第5版(13)〜ジェネリクス
詳解Swift第5版(14)〜メモリへのアクセスとポインタ
詳解Swift第5版(15)〜カスタム属性とDSL記法
詳解Swift第5版(16)〜GUI との連携

詳解Swift第4版(01)〜Swiftでプログラミング
詳解Swift第4版(02)〜関数
詳解Swift第4版(03)〜構造体
詳解Swift第4版(06)〜基本的なデータ型
詳解Swift第4版(07)〜パターン
詳解Swift第4版(08)〜クラスと継承
詳解Swift第4版(09)〜メモリ管理
詳解Swift第4版(10)〜拡張
詳解Swift第4版(11)〜エラー処理
詳解Swift第4版(12)〜クロージャ
詳解Swift第4版(13)〜ジェネリクス

詳解Swift第3版(01)〜Swiftでプログラミング
詳解Swift第3版(02)〜関数
詳解Swift第3版(03)〜構造体
詳解Swift第3版(05)〜基本的なデータ型
詳解Swift第3版(06)〜パターン
詳解Swift第3版(07)〜演算子
詳解Swift第3版(08)〜クラスと継承
詳解Swift第3版(09)〜メモリ管理
詳解Swift第3版(10)〜プロトコル
詳解Swift第3版(11)〜拡張
詳解Swift第3版(12)〜エラー処理
詳解Swift第3版(13)〜クロージャ
詳解Swift第3版(14)〜ジェネリクス

詳解Swift改訂版(01)〜Swiftでプログラミング
詳解Swift改訂版(02)〜関数
詳解Swift改訂版(03)〜構造体
詳解Swift改訂版(04)〜オプショナル
詳解Swift改訂版(05)〜基本的なデータ型
詳解Swift改訂版(06)〜パターン
詳解Swift改訂版(07)〜演算子
詳解Swift改訂版(08)〜クラスと継承
詳解Swift改訂版(09)〜メモリ管理
詳解Swift改訂版(10)〜プロトコル
詳解Swift改訂版(11)〜拡張
詳解Swift改訂版(12)〜エラー処理
詳解Swift改訂版(13)〜クロージャ
詳解Swift改訂版(14)〜ジェネリクス

詳解Swift(1)〜Swiftでプログラミング
詳解Swift(2)〜関数
詳解Swift(3)〜構造体
詳解Swift(4)〜オプショナル
詳解Swift(5)〜基本的なデータ型
詳解Swift(6)〜パターン
詳解Swift(7)〜演算子
詳解Swift(8)〜クラスと継承
詳解Swift(9)〜メモリ管理
詳解Swift(10)〜プロトコル
詳解Swift(11)〜拡張
詳解Swift(12)〜クロージャ
詳解Swift(13)〜ジェネリクス
詳解Swift(14)〜C/Objective-Cとのデータ受け渡し
Swift
Site Map
Apple Music


Categories
Tips
ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
QR Code
QR
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ

Visitors