Comments (7)
All the properties are of course stored in NSUserDefaults so all normal observing patterns simply work. That said, having a dead easy, block based change notification system would be cool.
On 18 Dec 2013, at 22:26, Jonathan Sibley [email protected] wrote:
As far as I can tell, there is no support for observing property value changes via NSNotificationCenter or KVO. What are your thoughts on the prospect of this feature?
—
Reply to this email directly or view it on GitHub.
from gvuserdefaults.
AFAIK, observing NSUserDefaultsDidChangeNotification
is the best way to observe NSUserDefaults
, and it doesn't provide any information about specific updates. That's the main disadvantage.
I think a light-weight (and small code foot print) solution would be calling willChangeValueForKey:
and didChangeValueForKey:
when GVUserDefaults
setters are used. However, these two calls need to be made in every single GVUserDefaults generic setter (i.e. doubleSetter
, objectSetter
, etc), right? Or can you think of a more centralized place to make the KVO calls?
from gvuserdefaults.
Back from my vacation, I'll look into this soon.
from gvuserdefaults.
As far as I can see, this already works fine without any code changes.
- (void)viewDidLoad {
[super viewDidLoad];
[[GVUserDefaults standardUserDefaults] addObserver:self forKeyPath:@"userName" options:NSKeyValueObservingOptionNew context:nil];
[GVUserDefaults standardUserDefaults].userName = @"Test";
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
NSLog(@"keyPath: %@", keyPath);
}
from gvuserdefaults.
Interesting! I apologize for not having tested it... apparently my understanding of the implementation wasn't correct! Thanks for following up, and I hope you had a nice vacation.
from gvuserdefaults.
Just to follow up: KVO on GVUserDefaults is working perfectly in my testing. —
Sent from Mailbox for iPhone
On Tue, Jan 14, 2014 at 6:15 AM, Kevin Renskers [email protected]
wrote:
Closed #10.
Reply to this email directly or view it on GitHub:
#10
from gvuserdefaults.
Awesome :)
from gvuserdefaults.
Related Issues (20)
- synchronize HOT 2
- Handle objects that implement NSCoding HOT 1
- transformKey conflict? HOT 4
- why use [NSString stringWithFormat:@"%@pDefaults", @"setu"] insteadof @"setupDefaults" HOT 2
- Support for app groups? HOT 3
- Updating the transformKey HOT 3
- Using NSMutableArray as preference object HOT 1
- Swift support HOT 1
- Suit -> Suite? HOT 3
- bug:sometime store property failure HOT 4
- Int and bool values not being stored in iOS 7 HOT 1
- Multi user switching HOT 1
- There are no default values for the second class extensions
- Default value cannot be updated when the app switches the users' accounts
- there is no dynamic key support HOT 1
- generateAccessorMethods in GVUserDefaults.m generate unnecessary accessor methods HOT 2
- non-public apis used?iTuens Connect rejected HOT 4
- would be cool to create a hook method that is invoked when GVUserDefaults singleton is instantiated HOT 4
- call to setupDefaults generates warning when submitting to AppStore HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gvuserdefaults.