This repository was archived by the owner on Mar 3, 2020. It is now read-only.
Add KVOController for self-observing: KVOControllerForSelf#131
Open
k06a wants to merge 2 commits intofacebookarchive:masterfrom
Open
Add KVOController for self-observing: KVOControllerForSelf#131k06a wants to merge 2 commits intofacebookarchive:masterfrom
k06a wants to merge 2 commits intofacebookarchive:masterfrom
Conversation
Author
|
@nlutsenko what do you think? |
nlutsenko
suggested changes
Aug 5, 2017
Contributor
nlutsenko
left a comment
There was a problem hiding this comment.
Requesting per comments inline.
It is important not to break the API, and there is a nice way to achieve this.
| @discussion Use retainObserved = NO when a strong reference between controller and observee would create a retain loop. When not retaining observees, special care must be taken to remove observation info prior to observee dealloc. | ||
| */ | ||
| - (instancetype)initWithObserver:(nullable id)observer retainObserved:(BOOL)retainObserved NS_DESIGNATED_INITIALIZER; | ||
| - (instancetype)initWithObserver:(nullable id)observer storeType:(FBKVOControllerObjectStoreType)storeType NS_DESIGNATED_INITIALIZER; |
Contributor
There was a problem hiding this comment.
It is quite important not to change the public API, since there might be folks still using it.
How about we deprecate the existing method, but still make it work and add this one as a new method?
| */ | ||
| typedef void (^FBKVONotificationBlock)(id _Nullable observer, id object, NSDictionary<NSKeyValueChangeKey, id> *change); | ||
|
|
||
| typedef NS_ENUM(NSUInteger, FBKVOControllerObjectStoreType) { |
Contributor
There was a problem hiding this comment.
Please add documentation for the ENUM and all constants here.
| Use this version when a strong reference between controller and observed object would create a retain cycle. | ||
| When not retaining observed objects, special care must be taken to remove observation info prior to deallocation of the observed object. | ||
| */ | ||
| @property (nonatomic, strong) FBKVOController *KVOControllerForSelf; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Example:
Sure we need to unobserve manually in dealloc.