我现在正在尝试几个小时来弄清楚我缺少的东西:我从用户默认值中检索字符串值并将它们插入到频道ID中。这是我的代码:
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
[currentInstallation setDeviceTokenFromData:deviceToken]
NSString *channel5 = [defaults stringForKey:@"text_plain5"]; // THIS WORKS NOT
[currentInstallation addUniqueObject:channel5 forKey:@"channels"];
[currentInstallation saveInBackground];
NSString *message = [defaults stringForKey:@"text_plain"]; // THIS WORKS
NSString *ownNr = [defaults stringForKey:@"text_plain99"]; // THIS WORKS
NSDictionary *data = [NSDictionary dictionaryWithObjectsAndKeys:
message, @"alert",
@"so.mp3", @"sound",
nil];
PFPush *push = [[PFPush alloc] init];
[push setChannels:[NSArray arrayWithObjects:ownNr, nil]];
[push setData:data];
[push sendPushInBackground];
第一部分出了什么问题?
非常感谢!
答案 0 :(得分:0)
就它本身而言,你在这里所做的事并没有错。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *channel5 = [defaults stringForKey:@"text_plain5"];
但是,由于您没有展示如何存储这些值,我们只能推测出错了什么。我首先检查一下,你确实为text_plain5
设置了一个值。请记住,此密钥区分大小写。如果这不是问题,您需要确保在保存值的时间和读取值之间同步NSUserDefaults
。
答案 1 :(得分:0)
我有两个问题:我使用nil键调用defaultsToRegister -setObject:,这是抛出异常。 我通过在首次启动时加载具有默认值的plist来修复它:
NSString* pathToUserDefaultsValues = [[NSBundle mainBundle]
pathForResource:@"Root~iphone"
ofType:@"plist"];
NSDictionary* userDefaultsValues = [NSDictionary dictionaryWithContentsOfFile:pathToUserDefaultsValues];
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValues];
[[NSUserDefaults standardUserDefaults] synchronize];
Danke Ortwin Gentz!