NSObject(NSKeyValueObserving)
継承:なし
従属:なし
フレームワーク:iOS 2.0 以降の Foundation。関連項目
概要
NSKeyValueObserving (KVO) 非公式プロトコルは、オブジェクトが他のオブジェクトの指定されたプロパティへの変更を通知されることを可能にするメカニズムを定義します。
簡単な属性、一つに対する関係、及び対多の関係をを含む全てのオブジェクトのプロパティを監視できます。同様にオブジェクトが変更に関与すれば、対多の関係の監視者は、行われた変更の型であることを通知されます。
NSObject は、すべてのオブジェクトの自動監視機能を提供する NSKeyValueObserving プロトコルの実装を提供します。さらに、自動監視通知を無効にし、このプロトコルのメソッドを使用して手動通知を実装することによって、通知を絞り込むことができます。
キー値監視は、Java アプリケーションでは使用できません。
タスク
変更通知
- observeValueForKeyPath:ofObject:change:context:
このメッセージは、与えられたオブジェクトに指定されたキーの相対パスでの値が変更されたときに受信者に送信されます。
宣言
<<SWIFT>>func observeValueForKeyPath(_ keyPath: String?, ofObject object: AnyObject?, change change: [NSObject : AnyObject]?, context context: UnsafeMutablePointer<Void>)
<<OBJECTIVE-C>>
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary <NSString*, id> *)change context:(void *)context
パラメーター
keyPath | 変更された値に、object への相対キーパス。 |
object | キーパス keyPath のソースオブジェクト。 |
change | object に相対キーパス keyPath のプロパティの値に加えられた変更を説明した dictionary。エントリは 変更される辞書のキー に記述されています。 |
context | 受信者が、キー値の監視通知を受け取るために登録したときに提供された値。 |
議論
受信者は、指定された keyPath と object の監視者として登録する必要があります。
利用可能
iOS 2.0 以降で利用可能です。
監視の登録
- addObserver:forKeyPath:options:context:
anObserver を受信者に指定された相対キーパスで KVO 通知を受信するように登録します。
宣言
<<SWIFT>>func addObserver(_ anObserver: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions, context context: UnsafeMutablePointer<Void>)
<<OBJECTIVE-C>>
- (void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context
パラメーター
anObserver | KVO 通知に登録すべきオブジェクト。observeValueForKeyPath:ofObject:change:context: のキー値監視メソッドを実装する必要があります。 |
keyPath | 監視すべきプロパティの受信者への相対キーパス。この値は nil であってはなりません。 |
options | 何が監視通知に含まれているかを指定する NSKeyValueObservingOptions 値の組み合わせ。可能な値については、NSKeyValueObservingOptions を参照してください。 |
context | observeValueForKeyPath:ofObject:change:context: の anObserver に渡される任意のデータ。 |
議論
受信者も、また anObserver も保持されません。このメソッドを呼び出すオブジェクトは、removeObserver:forKeyPath: または removeObserver:forKeyPath:context: メソッドのいずれかも、KVO に参加したとき呼び出す必要があります。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
- removeObserver:forKeyPath:
受信者に与えられた相対キーパスで指定されたプロパティの変更通知を受ける事から与えられたオブジェクトを停止します。
宣言
<<SWIFT>>func removeObserver(_ anObserver: NSObject, forKeyPath keyPath: String)
<<OBJECTIVE-C>>
- (void)removeObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath
パラメーター
anObserver | 監視者として削除するべきオブジェクト。 |
keyPath | anObserver が、KVO の変更通知を受信するための、登録されている受信者への相対キーパス。 |
議論
オブジェクトが監視者として登録されていない場合、removeObserver:forKeyPath: を呼び出すと、エラーになります。
このメソッド(または removeObserver:forKeyPath:context:) を呼び出す時は、addObserver:forKeyPath:options:context: で指定された全てのオブジェクトを割り当て解除する前に起動してください。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
– addObserver:forKeyPath:options:context:- removeObserver:forKeyPath:context:
受信者と文脈に与えられた相対キーパスで指定されたプロパティの変更通知を受ける事から与えられたオブジェクトを停止します。
宣言
<<SWIFT>>func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutablePointer<Void>)
<<OBJECTIVE-C>>
- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath context:(void *)context
パラメーター
observer | 監視者として削除するべきオブジェクト。 |
keyPath | anObserver が、KVO の変更通知を受信するための、登録されている受信者への相対キーパス。 |
context | より具体的に、削除すべき監視者を識別する任意のデータ。 |
議論
文脈 (context) 内の値を調べると、addObserver:forKeyPath:options:context: の呼び出しが監視関係を作成するために使用されたものを正確に決定することができます。同じ監視者が同じキーパスを複数回登録されている場合は、しかし異なる文脈ポインタで、アプリケーションは、監視を停止するオブジェクトを特異的に決定することができます。オブジェクトが監視者として登録されていない場合は removeObserver:forKeyPath:context: を呼び出すとエラーになります。
このメソッド (または removeObserver:forKeyPath:) は、- removeObserver:forKeyPath:context: で指定された全てのオブジェクトが割り当て解除される前に起動して下さい。
利用可能
iOS 5.0 以降で利用可能です。
監視者に変化を通知
- willChangeValueForKey:
指定されたプロパティの値が変更されようとしている事を受信者に通知するために呼び出されます。
宣言
<<SWIFT>>func willChangeValueForKey(_ key: String)
<<OBJECTIVE-C>>
- (void)willChangeValueForKey:(NSString *)key
パラメーター
key | 変化しようとするプロパティの名前。 |
議論
キー値の監視者のコンプライアンスを手動で実装するときには、このメソッドを呼び出す必要があります。
このメソッドの変更型は NSKeyValueChangeSetting です。
特別な考慮事項
サブクラス内でこのメソッドをオーバーライドしてはなりません。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
- didChangeValueForKey:– willChange:valuesAtIndexes:forKey:
- didChangeValueForKey:
指定されたプロパティの値が変更された事を受信者に通知するために呼び出されます。
宣言
<<SWIFT>>func didChangeValueForKey(_ key: String)
<<OBJECTIVE-C>>
- (void)didChangeValueForKey:(NSString *)key
パラメーター
key | 変更したプロパティの名前 |
議論
キー値の監視者のコンプライアンスを手動で実装するときは、このメソッドを呼び出す必要があります。
特別な考慮事項
サブクラスでこのメソッドをオーバーライドしてはなりません。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
– willChangeValueForKey:– didChange:valuesAtIndexes:forKey:
- willChange:valuesAtIndexes:forKey:
指定された変更が、対多の関係で指定された順序で、索引で実行されようとしている受信者に通知するために呼び出されます。
宣言
<<SWIFT>>func willChange(_ change: NSKeyValueChange, valuesAtIndexes indexes: NSIndexSet, forKey key: String)
<<OBJECTIVE-C>>
- (void)willChange:(NSKeyValueChange)change valuesAtIndexes:(NSIndexSet *)indexes forKey:(NSString *)key
パラメーター
change | 行われようとしている変更の型。 |
indexes | 変更によって影響を受けようとしている対多の関係の索引。 |
key | 対多の関係で順序付けられたプロパティの名前。 |
議論
キー値監視のコンプライアンスを手動で実装するときは、このメソッドを呼び出す必要があります。
特別な考慮事項
サブクラス内でこのメソッドをオーバーライドしてはなりません。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
– didChange:valuesAtIndexes:forKey:– willChangeValueForKey:
- didChange:valuesAtIndexes:forKey:
指定された順序の対多の関係で指定された変更が索引に発生した事を受信者に通知するために呼び出されます。
宣言
<<SWIFT>>func willChange(_ change: NSKeyValueChange, valuesAtIndexes indexes: NSIndexSet, forKey key: String)
<<OBJECTIVE-C>>
- (void)willChange:(NSKeyValueChange)change valuesAtIndexes:(NSIndexSet *)indexes forKey:(NSString *)key
パラメーター
change | 行われた変更の型。 |
indexes | 変更によって影響を受けた対多の関係の索引。 |
key | 対多の関係で順序付けられたプロパティの名前。 |
議論
キー値監視のコンプライアンスを手動で実装するときは、このメソッドを呼び出す必要があります。
特別な考慮事項
サブクラス内でこのメソッドをオーバーライドしてはなりません。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
– willChange:valuesAtIndexes:forKey:– didChangeValueForKey:
- willChangeValueForKey:withSetMutation:usingObjects:
指定された変更が、指定された順序なしの対多の関係になされようとしている事を受信者に通知するために呼び出されます。
宣言
<<SWIFT>>func willChangeValueForKey(_ key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, usingObjects objects: Set<NSObject>)
<<OBJECTIVE-C>>
- (void)willChangeValueForKey:(NSString *)key withSetMutation:(NSKeyValueSetMutationKind)mutationKind usingObjects:(NSSet *)objects
パラメーター
key | 順序なしの対多の関係であるプロパティの名前 |
mutationKind | 行われる変更の型。 |
objects | 変化に関与しているオブジェクト (NSKeyValueSetMutationKind を参照の事)。 |
議論
キー値の監視者のコンプライアンスを手動で実装するときには、このメソッドを呼び出して下さい。
特別な考慮事項
サブクラスでこのメソッドをオーバーライドしてはなりません。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
– didChangeValueForKey:withSetMutation:usingObjects:– didChangeValueForKey:withSetMutation:usingObjects:
指定された変更が、指定された順序なしの対多の関係に行われた事を受信者に通知するために呼び出されます。
宣言
<<SWIFT>>
func didChangeValueForKey(_ key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, usingObjects objects: Set<NSObject>)
<<OBJECTIVE-C>>
- (void)didChangeValueForKey:(NSString *)key withSetMutation:(NSKeyValueSetMutationKind)mutationKind usingObjects:(NSSet *)objects
パラメータ
key | 順序なしの対多の関係であるプロパティの名前 |
mutationKind | 行われた変更の型。 |
objects | 変化に関与していたオブジェクト (NSKeyValueSetMutationKind を参照の事)。 |
議論
キー値監視者のコンプライアンスを手動で実装するときには、このメソッドを呼び出して下さい。
特別な考慮事項
サブクラス内でこのメソッドをオーバーライドしてはなりません。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
- willChangeValueForKey:withSetMutation:usingObjects:監視のカスタマイズ
+ automaticallyNotifiesObserversForKey:
受信者が指定されたキーの自動キー値の監視をサポートしているかどうかを示すブール値を返します。
宣言
<<SWIFT>>class func automaticallyNotifiesObserversForKey(_ key: String) -> Bool
<<OBJECTIVE-C>>
+ (BOOL)automaticallyNotifiesObserversForKey:(NSString *)key
戻り値
キー値監視機械が自動的に willChangeValueForKey と willChange:valuesAtIndexes:forKey: / didChange:valuesAtIndexes:forKey: を呼び出し、クラスのインスタンスが、key のメッセージコードを受信する場合、または key のためキー値コードコンプライアンス・メソッドの変異をする時はいつでも YES であり、それ以外の場合は NO です。
議論
デフォルトの実装では、YES を返します。OS X 10.5 以降では、このメソッドのデフォルトの実装は、その名前がパターン +automaticallyNotifiesObserversOf<Key> と一致するメソッドを受信クラスで検索し、見つかった場合、そのメソッドを呼び出した結果を返します。見つかったメソッドは、BOOL を返す必要があります。そのようなメソッドが見つからない場合は YES が返されます。
利用可能
iOS 2.0 以降で利用可能です。
+ keyPathsForValuesAffectingValueForKey:
指定されたキーの値に影響するプロパティの値のキーパスのセットを返します。
宣言
<<SWIFT>>class func keyPathsForValuesAffectingValueForKey(_ key: String) -> Set<String>
<<OBJECTIVE-C>>
+ (NSSet<NSString *> *)keyPathsForValuesAffectingValueForKey:(NSString *)key
パラメーター
key | キーパスによって影響されるキーの値。 |
戻り値
議論
キーの監視者は、受信クラスのインスタンスに登録されると、キー値はそのものを監視し、自動的に同じインスタンスのキーパスのすべてを監視し、それらのいずれかのキーパスの値の変更があった際に、監視者にキーの変更通知を送信します。
このメソッドのデフォルトの実装は、名前がパターン +keyPathsForValuesAffecting<Key> と一致する受信クラスのメソッドを検索し、見つかった場合、そのメソッドを呼び出した結果を返します。このようなメソッドは、NSSet を返す必要があります。そのようなメソッドが見つからない場合は、今は旧式となった setKeys:triggerChangeNotificationsForDependentKey: メソッドの以前の呼び出しによって提供された情報から計算される NSSet が下位バイナリー互換のために、返されます。
プロパティの一つのゲッタメソッドが、キーパスによって位置決めされているものを含む他のプロパティの値を使用して返すように値を計算する際に、このメソッドをオーバーライドできます。オーバーライドは、通常、super を呼び出し、おこなった一連の結果内の全てのメンバーを含むセットを返す必要があります(スーパークラスでこのメソッドのオーバーライドに干渉しない限り)。
利用可能
iOS 2.0 以降で利用可能です。
- observationInfo
受信者の監視情報を設定します。
宣言
<<SWIFT>>var observationInfo: UnsafeMutablePointer<Void>
<<OBJECTIVE-C>>
@property void *observationInfo
パラメーター
observationInfo | 受信者の監視情報。 |
議論
observationInfo は受信者で登録されているすべての監視者に関する情報を識別するポインタです。このメソッドのデフォルトの実装は、受信者のポインタでキーされたグローバル dictionary の所に observationInfo を保管します。
パフォーマンスを向上させるため、このメソッドと observationInfo はインスタンス変数に不透明なデータポインタを格納するためにオーバーライドできます。このメソッドをオーバーライドするクラスは、retain と release を含む、observationInfo に Objective-C のメッセージを送信しようとしてはなりません。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
– observationInfo- observationInfo
受信者で登録されているすべての監視者に関する情報を識別するポインタを返します。
宣言
<<SWIFT>>var observationInfo: UnsafeMutablePointer<Void>
<<OBJECTIVE-C>>
@property void *observationInfo
戻り値
受信者で登録されているすべての監視者に関する情報を識別するポインタであり、登録時に使用されたオプション、など。
議論
このメソッドのデフォルトの実装は、受信者のポインタでキーされたグローバル dictionary から情報を取得します。
パフォーマンスを向上させるため、このメソッドと setObservationInfo: は、インスタンス変数の不透明なデータポインタを格納するためにオーバーライドできます。このメソッドのオーバーライドは、retain と release を含む、保存されたデータに Objective-C のメッセージを送信しようとしてはいけません。
利用可能
iOS 2.0 以降で利用可能です。
以下も見よ
-setObservationInfo:定数
NSKeyValueChange
これらの定数は、observeValueForKeyPath:ofObject:change:context: に渡された変更 dictionary 内の NSKeyValueChangeKindKey キーの値として戻され、行われた変更の型を示します。
宣言
<<SWIFT>>
enum NSKeyValueChange : UInt { case Setting case Insertion case Removal case Replacement }
<<OBJECTIVE-C>>
enum { NSKeyValueChangeSetting = 1, NSKeyValueChangeInsertion = 2, NSKeyValueChangeRemoval = 3, NSKeyValueChangeReplacement = 4 }; typedef NSUInteger NSKeyValueChange;
定数
監視されたキーパスの値が新しい値に設定されたことを示します。1対1 と対多の関係を指定するオブジェクトの属性と、プロパティを監視する場合、この変更が発生する可能性があります。
iOS の 2.0 以降で利用可能です。
監視されている対多の関係の中にオブジェクトが挿入されたことを示します。
iOS の 2.0 以降で利用可能です。
監視されている対多の関係からオブジェクトが削除されたことを示します。
iOS の 2.0 以降で利用可能です。
監視されている対多の関係内のオブジェクトが置き換えられたことを示します。
iOS の 2.0 以降で利用可能です。
import 文
<<OBJECT-C>>@import Foundation;
<<SWIFT>>
import Foundation
利用可能
iOS 2.0 以降で利用可能です。
NSKeyValueObservingOptions
これらの定数は addObserver:forKeyPath:options:context: に渡され、 observeValueForKeyPath:ofObject:change:context: に渡された dictionary の変更の一部として返される値を決定しています。辞書の変化の値を必要としない場合は、0 を渡すことができます。
宣言
<<SWIFT>>struct NSKeyValueObservingOptions : OptionSetType { init(rawValue rawValue: UInt) static var New: NSKeyValueObservingOptions { get } static var Old: NSKeyValueObservingOptions { get } static var Initial: NSKeyValueObservingOptions { get } static var Prior: NSKeyValueObservingOptions { get } }
<<OBJECTIVE-C>>
enum { NSKeyValueObservingOptionNew = 0x01, NSKeyValueObservingOptionOld = 0x02, NSKeyValueObservingOptionInitial = 0x04, NSKeyValueObservingOptionPrior = 0x08 }; typedef NSUInteger NSKeyValueObservingOptions;
定数
該当する場合は、変更する dictionary は、新しい属性値を提供する必要があることを示します。
iOS の 2.0 以降で利用可能です。
該当する場合は、変更する dictionary は、古い属性値を含んでいる必要があることを示します。
iOS の 2.0 以降で利用可能です。
指定された場合は、監視者の登録メソッドが返す前に、通知はすぐに監視者に送信する必要があります。
通知内の変更する辞書は NSKeyValueObservingOptionNew も指定されている場合は、常に NSKeyValueChangeNewKey エントリを含みますが、NSKeyValueChangeOldKey エントリを含むことは決してありません。(最初の通知では監視されたプロパティの現在の値が古い可能性がありますが、それは監視者にとっては新しいです。) 同時にまた、監視者の observeValueForKeyPath:ofObject:change:context: メソッドによって呼び出されるコードを明示的に呼び出すのではなく、このオプションを使用できます。このオプションは addObserver:forKeyPath:options:context: と共に使用した場合、通知は、監視者が追加されている、各インデックス付きのオブジェクトに対して送信されます。
iOS の 2.0 以降で利用可能です。
個別の通知が、変更後の一つの通知の代わりに、各変更の前と後に、監視者に送信する必要があるかどうか。
変更の前に送られる通知内の変更される dictionary は、NSKeyValueChangeNotificationIsPriorKeyNSNumber エントリを必ず含んでおり、その値は [NSNumber numberWithBool:YES] であり、決して NSKeyValueChangeNewKey エントリを含んでいません。このオプションが指定されている場合は、変更後に送信される通知内の変更される dictionary は、このオプションが指定されていない場合は、含むのと同じエントリを含んでいます。監視者自身のキー値監視コンプライアンスが独自のプロパティの1つの -willChange... メソッドのいずれか一つを呼び出すことを要求している場合には、このオプションを使用でき、そのプロパティの値は監視されたオブジェクトのプロパティの値に依存しています。(そのような状況では、簡単に -willChange... を呼び出して、変更後 observeValueForKeyPath:ofObject:change:context: メッセージの受信に適切に対応するのは遅すぎます。)
iOS の 2.0 以降で利用可能です。
import 文
<<OBJECT-C>>@import Foundation;
<<SWIFT>>
import Foundation
利用可能
iOS 2.0 以降で利用可能です。
変更される辞書のキー
これらの定数は、observeValueForKeyPath:ofObject:change:context: に渡される変更される辞書のキーとして使用されています。
宣言
<<SWIFT>>
let NSKeyValueChangeKindKey: String! let NSKeyValueChangeNewKey: String! let NSKeyValueChangeOldKey: String! let NSKeyValueChangeIndexesKey: String! let NSKeyValueChangeNotificationIsPriorKey: String!
<<OBJECTIVE-C>>
NSString *const NSKeyValueChangeKindKey; NSString *const NSKeyValueChangeNewKey; NSString *const NSKeyValueChangeOldKey; NSString *const NSKeyValueChangeIndexesKey; NSString *const NSKeyValueChangeNotificationIsPriorKey;
定数
どの種類の変更が発生したかを示す、NSKeyValueChange の列挙体のいずれか一つに対応する値を含む NSNumber オブジェクト。
NSKeyValueChangeSetting の値は setValue:forKey: メッセージを監視されたオブジェクトが受信したことを示し、またキー値コーディングコンプライアントのキー設定メソッドが呼び出されたことを示すか、そうでなければ willChangeValueForKey: または didChangeValueForKey: メソッドのうちの一つが呼び出された事を示しています。
NSKeyValueChangeInsertion,NSKeyValueChangeRemoval,または NSKeyValueChangeReplacement の値は変化するメッセージがキー値を監視するコンプライアント・コレクション・プロキシに送られ、またはキー値コーディングコンプライアント・コレクション変化メソッドの一つにキーが呼び出されるか、そうでなければ、コレクションが、will chane か did change して、メソッドが、呼び出されるでしょう。
変更の種類の整数値を取得するため NSNumber の intValue メソッドを使用できます。
iOS 2.0 以降で利用可能です。
NSKeyValueChangeKindKey のエントリの値が NSKeyValueChangeSetting であり、監視者が登録されたとき NSKeyValueObservingOptionNew を指定した場合は、このキーの値は、属性の新しい値です。
監視者が登録されたとき NSKeyValueObservingOptionNew が指定されている時、NSKeyValueChangeInsertion または NSKeyValueChangeReplacement の場合は、それぞれ、このキーの値は挿入または他のオブジェクトと置き換えた他のオブジェクトを含む NSArray のインスタンスです。
iOS 2.0 以降で利用可能です。
NSKeyValueChangeKindKey エントリの値が NSKeyValueChangeSetting の場合、また監視者が登録されたとき NSKeyValueObservingOptionOld を指定した場合は、このキーの値は、属性が変更される前の値です。
監視者が登録されたとき NSKeyValueObservingOptionOld が指定されている場合、NSKeyValueChangeRemoval または NSKeyValueChangeReplacement の場合は、それぞれ値が削除されているか、他のオブジェクトに置き換えられたオブジェクトを含む NSArray のインスタンスです。
iOS 2.0 以降で利用可能です。
NSKeyValueChangeKindKey のエントリの値が NSKeyValueChangeInsertion,NSKeyValueChangeRemoval,または NSKeyValueChangeReplacement である場合、このキーの値は、それぞれ、挿入、削除または置換されたオブジェクトのインデックスを含む NSIndexSet オブジェクトです。
iOS 2.0 以降で利用可能です。
監視者が登録されたときにオプション NSKeyValueObservingOptionPrior が指定された場合、この通知は、変更前に送信されます。
変更される辞書は、その値が YES を包む NSNumber の値である NSKeyValueChangeNotificationIsPriorKey のエントリを含んでいます。
iOS 2.0 以降で利用可能です。
NSKeyValueSetMutationKind
これらの定数は、willChangeValueForKey:withSetMutation:usingObjects: と didChangeValueForKey:withSetMutation:usingObjects: メソッドへのパラメータとして指定されます。その意味では NSMutableSet クラスメソッド unionSet:,minusSet:,intersectSet:, および setSet: にそれぞれ正確に対応しています。
宣言
<<SWIFT>>enum NSKeyValueSetMutationKind : UInt { case UnionSetMutation case MinusSetMutation case IntersectSetMutation case SetSetMutation }
<<OBJECTIVE-C>>
enum { NSKeyValueUnionSetMutation = 1, NSKeyValueMinusSetMutation = 2, NSKeyValueIntersectSetMutation = 3, NSKeyValueSetSetMutation = 4 }; typedef NSUInteger NSKeyValueSetMutationKind;
定数
指定されたセット内のオブジェクトは、受信者に追加されていることを示します。
この NSKeyValueChangeInsertion の NSKeyValueChangeKindKey 値は、変異する種類の結果です。
iOS 2.0 以降で利用可能です。
指定されたセット内のオブジェクトは、受信者から削除されていることを示します。
この NSKeyValueChangeRemoval の NSKeyValueChangeKindKey 値は、変異する種類の結果です。
iOS 2.0 以降で利用可能です。
指定されたセット内ではないオブジェクトが、受信者から削除されていることを示します。
この NSKeyValueChangeRemoval の NSKeyValueChangeKindKey 値は変異する種類の結果です。iOS 2.0 以降で利用可能です。
オブジェクトのセットが受信者にすでに存在するオブジェクトを置き換えることを示します。
この NSKeyValueChangeReplacement の NSKeyValueChangeKindKey 値は変異する種類の結果です。
iOS 2.0 以降で利用可能です。
import 文
<<OBJECT-C>>@import Foundation;
<<SWIFT>>
import Foundation
利用可能
iOS 2.0 以降で利用可能です。