i'm creating a iwatch app just to display a value on watch when clicking on a tableview in iphone app.
i would like to get a notification on a shared userdefault value changes . it is shared between watchkitapp and iphone app, so when the user makes any changes in phone i have to get the notification. i have done the following
When user do Some action in applicaton on phone
NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.app"];</br>
id object = [self.plantsArray objectAtIndex:[self.plantsTable indexPathForSelectedRow].row];</br>
[shared setObject:object forKey:@"data"];</br> [shared synchronize];
in the watchkit extension have registered for the notification
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(print) name:NSUserDefaultsDidChangeNotification object:nil];
But unfortunately i'm not getting any notifications, any one know some solution
You can try MMWormHole which provides :
Using it ,That will be all the code needed to do notifications in ur app
I don't think iOS has capability of
distributed notifications
between app and extension, notifications will not work between both, instead you need to find a way in which both can monitor changes. For example files.As you already have created
group
, you can keep a file in the group folder and add afilewatcher
in extension, update the file from app, andfilewatcher
will catch the change, and your work is done.For
filewatcher
see code here.Hope it helps.
Cheers.
Update
Find
File watcher Swift version
here. Thanks@rivera
for adding.