I do not know why you get another value then expected. Maybe, because your not on main thread? you can check it with [NSThread isMainThread]
Actually if you want to pass an object with notification, you can use userInfo property of NSNotification object. It is the proper way of doing this. One of the best advantage of NSNotificationCenter is, you can post, receive notifications without knowing poster and receiver eachother.
You can post notification like that
[[NSNotificationCenter defaultCenter] postNotificationName:notificationName
object:self
userInfo:@{key:[NSNumber numberWithInt:value]}];
And receive like that
- (void)updateTheScore:(NSNotification *)notification
{
NSInteger value = [[notification.userInfo objectForKey:key] intValue];
}