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 のソースオブジェクト。
changeobject に相対キーパス keyPath のプロパティの値に加えられた変更を説明した dictionary。エントリは 変更される辞書のキー に記述されています。
context受信者が、キー値の監視通知を受け取るために登録したときに提供された値。

議論

受信者は、指定された keyPathobject の監視者として登録する必要があります。



利用可能

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


パラメーター

anObserverKVO 通知に登録すべきオブジェクト。observeValueForKeyPath:ofObject:change:context: のキー値監視メソッドを実装する必要があります。
keyPath監視すべきプロパティの受信者への相対キーパス。この値は nil であってはなりません。
options何が監視通知に含まれているかを指定する NSKeyValueObservingOptions 値の組み合わせ。可能な値については、NSKeyValueObservingOptions を参照してください。
contextobserveValueForKeyPath:ofObject:change:context:anObserver に渡される任意のデータ。

議論

受信者も、また anObserver も保持されません。このメソッドを呼び出すオブジェクトは、removeObserver:forKeyPath: または removeObserver:forKeyPath:context: メソッドのいずれかも、KVO に参加したとき呼び出す必要があります。


利用可能

iOS 2.0 以降で利用可能です。



以下も見よ

– removeObserver:forKeyPath:





- removeObserver:forKeyPath:


受信者に与えられた相対キーパスで指定されたプロパティの変更通知を受ける事から与えられたオブジェクトを停止します。


宣言

<<SWIFT>>

func removeObserver(_ anObserver: NSObject,
     forKeyPath keyPath: String)


<<OBJECTIVE-C>>

- (void)removeObserver:(NSObject *)anObserver
     forKeyPath:(NSString *)keyPath


パラメーター

anObserver監視者として削除するべきオブジェクト。
keyPathanObserver が、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監視者として削除するべきオブジェクト。
keyPathanObserver が、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 です。


重要: 値が変更された後、対応する didChangeValueForKey: は、同じパラメータで呼び出されなければなりません。



特別な考慮事項

サブクラス内でこのメソッドをオーバーライドしてはなりません。


利用可能

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対多の関係で順序付けられたプロパティの名前。


議論

キー値監視のコンプライアンスを手動で実装するときは、このメソッドを呼び出す必要があります。


重要: 値が変更された後、対応する didChange:valuesAtIndexes:forKey: は同じパラメーターで起動する必要があります。


特別な考慮事項

サブクラス内でこのメソッドをオーバーライドしてはなりません。


利用可能

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 を参照の事)。

議論

キー値の監視者のコンプライアンスを手動で実装するときには、このメソッドを呼び出して下さい。


重要: 値が変更された後、対応する didChangeValueForKey:withSetMutation:usingObjects: は、同じパラメータで起動する必要があります。



特別な考慮事項

サブクラスでこのメソッドをオーバーライドしてはなりません。


利用可能

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


戻り値

キー値監視機械が自動的に willChangeValueForKeywillChange: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 を呼び出し、おこなった一連の結果内の全てのメンバーを含むセットを返す必要があります(スーパークラスでこのメソッドのオーバーライドに干渉しない限り)。


注意: カテゴリを使用している、既存のクラスに計算されたプロパティを追加するときにこのメソッドをオーバーライドしてはならず、カテゴリ内でにメソッドをオーバーライドするのはサポートされていません。この場合、このメカニズムを利用するには、一致する +keyPathsForValuesAffecting<Key> を実装して下さい。


利用可能


iOS 2.0 以降で利用可能です。





- observationInfo


受信者の監視情報を設定します。


宣言

<<SWIFT>>

var observationInfo: UnsafeMutablePointer<Void>


<<OBJECTIVE-C>>

@property void *observationInfo


パラメーター

observationInfo受信者の監視情報。

議論

observationInfo は受信者で登録されているすべての監視者に関する情報を識別するポインタです。このメソッドのデフォルトの実装は、受信者のポインタでキーされたグローバル dictionary の所に observationInfo を保管します。


パフォーマンスを向上させるため、このメソッドと observationInfo はインスタンス変数に不透明なデータポインタを格納するためにオーバーライドできます。このメソッドをオーバーライドするクラスは、retainrelease を含む、observationInfo に Objective-C のメッセージを送信しようとしてはなりません。


利用可能

iOS 2.0 以降で利用可能です。


以下も見よ

– observationInfo



- observationInfo


受信者で登録されているすべての監視者に関する情報を識別するポインタを返します。


宣言

<<SWIFT>>

var observationInfo: UnsafeMutablePointer<Void>


<<OBJECTIVE-C>>

@property void *observationInfo


戻り値

受信者で登録されているすべての監視者に関する情報を識別するポインタであり、登録時に使用されたオプション、など。


議論

このメソッドのデフォルトの実装は、受信者のポインタでキーされたグローバル dictionary から情報を取得します。


パフォーマンスを向上させるため、このメソッドと setObservationInfo: は、インスタンス変数の不透明なデータポインタを格納するためにオーバーライドできます。このメソッドのオーバーライドは、retainrelease を含む、保存されたデータに 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;


定数

  • NSKeyValueChangeSetting
  • 監視されたキーパスの値が新しい値に設定されたことを示します。1対1 と対多の関係を指定するオブジェクトの属性と、プロパティを監視する場合、この変更が発生する可能性があります。


    iOS の 2.0 以降で利用可能です。


  • NSKeyValueChangeInsertion
  • 監視されている対多の関係の中にオブジェクトが挿入されたことを示します。

    iOS の 2.0 以降で利用可能です。


  • NSKeyValueChangeRemoval
  • 監視されている対多の関係からオブジェクトが削除されたことを示します。


    iOS の 2.0 以降で利用可能です。


  • NSKeyValueChangeReplacement
  • 監視されている対多の関係内のオブジェクトが置き換えられたことを示します。


    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;
    


    定数

  • NSKeyValueObservingOptionNew
  • 該当する場合は、変更する dictionary は、新しい属性値を提供する必要があることを示します。


    iOS の 2.0 以降で利用可能です。


  • NSKeyValueObservingOptionOld
  • 該当する場合は、変更する dictionary は、古い属性値を含んでいる必要があることを示します。


    iOS の 2.0 以降で利用可能です。


  • NSKeyValueObservingOptionInitial
  • 指定された場合は、監視者の登録メソッドが返す前に、通知はすぐに監視者に送信する必要があります。


    通知内の変更する辞書は NSKeyValueObservingOptionNew も指定されている場合は、常に NSKeyValueChangeNewKey エントリを含みますが、NSKeyValueChangeOldKey エントリを含むことは決してありません。(最初の通知では監視されたプロパティの現在の値が古い可能性がありますが、それは監視者にとっては新しいです。) 同時にまた、監視者の observeValueForKeyPath:ofObject:change:context: メソッドによって呼び出されるコードを明示的に呼び出すのではなく、このオプションを使用できます。このオプションは addObserver:forKeyPath:options:context: と共に使用した場合、通知は、監視者が追加されている、各インデックス付きのオブジェクトに対して送信されます。


    iOS の 2.0 以降で利用可能です。


  • NSKeyValueObservingOptionPrior
  • 個別の通知が、変更後の一つの通知の代わりに、各変更の前と後に、監視者に送信する必要があるかどうか。

    変更の前に送られる通知内の変更される 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;
    


    定数

  • NSKeyValueChangeKindKey

  • どの種類の変更が発生したかを示す、NSKeyValueChange の列挙体のいずれか一つに対応する値を含む NSNumber オブジェクト。


    NSKeyValueChangeSetting の値は setValue:forKey: メッセージを監視されたオブジェクトが受信したことを示し、またキー値コーディングコンプライアントのキー設定メソッドが呼び出されたことを示すか、そうでなければ willChangeValueForKey: または didChangeValueForKey: メソッドのうちの一つが呼び出された事を示しています。


    NSKeyValueChangeInsertion,NSKeyValueChangeRemoval,または NSKeyValueChangeReplacement の値は変化するメッセージがキー値を監視するコンプライアント・コレクション・プロキシに送られ、またはキー値コーディングコンプライアント・コレクション変化メソッドの一つにキーが呼び出されるか、そうでなければ、コレクションが、will chane か did change して、メソッドが、呼び出されるでしょう。


    変更の種類の整数値を取得するため NSNumberintValue メソッドを使用できます。


    iOS 2.0 以降で利用可能です。


  • NSKeyValueChangeNewKey

  • NSKeyValueChangeKindKey のエントリの値が NSKeyValueChangeSetting であり、監視者が登録されたとき NSKeyValueObservingOptionNew を指定した場合は、このキーの値は、属性の新しい値です。


    監視者が登録されたとき NSKeyValueObservingOptionNew が指定されている時、NSKeyValueChangeInsertion または NSKeyValueChangeReplacement の場合は、それぞれ、このキーの値は挿入または他のオブジェクトと置き換えた他のオブジェクトを含む NSArray のインスタンスです。


    iOS 2.0 以降で利用可能です。



  • NSKeyValueChangeOldKey

  • NSKeyValueChangeKindKey エントリの値が NSKeyValueChangeSetting の場合、また監視者が登録されたとき NSKeyValueObservingOptionOld を指定した場合は、このキーの値は、属性が変更される前の値です。


    監視者が登録されたとき NSKeyValueObservingOptionOld が指定されている場合、NSKeyValueChangeRemoval または NSKeyValueChangeReplacement の場合は、それぞれ値が削除されているか、他のオブジェクトに置き換えられたオブジェクトを含む NSArray のインスタンスです。


    iOS 2.0 以降で利用可能です。



  • NSKeyValueChangeIndexesKey

  • NSKeyValueChangeKindKey のエントリの値が NSKeyValueChangeInsertion,NSKeyValueChangeRemoval,または NSKeyValueChangeReplacement である場合、このキーの値は、それぞれ、挿入、削除または置換されたオブジェクトのインデックスを含む NSIndexSet オブジェクトです。


    iOS 2.0 以降で利用可能です。



  • NSKeyValueChangeNotificationIsPriorKey

  • 監視者が登録されたときにオプション 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;
    

    定数

  • NSKeyValueUnionSetMutation

  • 指定されたセット内のオブジェクトは、受信者に追加されていることを示します。

    この NSKeyValueChangeInsertionNSKeyValueChangeKindKey 値は、変異する種類の結果です。


    iOS 2.0 以降で利用可能です。


  • NSKeyValueMinusSetMutation

  • 指定されたセット内のオブジェクトは、受信者から削除されていることを示します。
    この NSKeyValueChangeRemovalNSKeyValueChangeKindKey 値は、変異する種類の結果です。


    iOS 2.0 以降で利用可能です。


  • NSKeyValueIntersectSetMutation

  • 指定されたセット内ではないオブジェクトが、受信者から削除されていることを示します。

    この NSKeyValueChangeRemovalNSKeyValueChangeKindKey 値は変異する種類の結果です。


    iOS 2.0 以降で利用可能です。


  • NSKeyValueSetSetMutation

  • オブジェクトのセットが受信者にすでに存在するオブジェクトを置き換えることを示します。

    この NSKeyValueChangeReplacementNSKeyValueChangeKindKey 値は変異する種類の結果です。


    iOS 2.0 以降で利用可能です。



    import 文

    <<OBJECT-C>>

    @import Foundation;


    <<SWIFT>>

    import Foundation


    利用可能


    iOS 2.0 以降で利用可能です。





    目次
    Xcode 10 の新機能

  • NSObject(KeyValueObserving) (キー値監視)プロトコルリファレンス
  • 概要
  • タスク
  • 変更通知
  • observeValueForKeyPath:ofObject: change:context:
  • 監視の登録
  • addObserver:forKeyPath:options:context:
    removeObserver:forKeyPath:
    removeObserver:forKeyPath:context:
  • 監視者に変化を通知
  • willChangeValueForKey:
    didChangeValueForKey:
    willChange:valuesAtIndexes:forKey:
    didChange:valuesAtIndexes:forKey:
    willChangeValueForKey: withSetMutation:usingObjects:
    didChangeValueForKey: withSetMutation:usingObjects:
  • 監視のカスタマイズ
  • automaticallyNotifiesObserversForKey:
    keyPathsForValuesAffectingValueForKey:
    observationInfo
    observationInfo
  • 定数
  • NSKeyValueChange
    NSKeyValueObservingOptions
    変更される辞書のキー
    NSKeyValueSetMutationKind
    変更履歴












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)












    トップへ(NSKeyValueObserving)