Thread1v:signal将被强制
Thread1v:signal SIGABRT
我是 Android 开发人员,现在切换到 IOS,所以我是 IOS 开发的新手。
我在这个地方出错
Thread1v:signal SIGABRT
。如何解决错误
-(void)updatePostCountUserDefaults{
NSMutableDictionary *postCount ;
NSNumber *count;
if([[NSUserDefaults standardUserDefaults] objectForKey:@"postCount"] !=nil){
postCount = [[NSUserDefaults standardUserDefaults] objectForKey:@"postCount"];
count = [postCount objectForKey:@"count"];
count = [NSNumber numberWithInt:([count integerValue] + 1.0)];
int n = [count integerValue];
NSLog(@"hey count is : %i" , n);
[postCount setObject:count forKey:@"count"];
}else{
postCount = [[NSMutableDictionary alloc] init];
count = [NSNumber numberWithInt:1];
[postCount setObject:count forKey:@"count"]; //error-
}
[[NSUserDefaults standardUserDefaults] setObject:postCount forKey:@"postCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
int num = [count integerValue];
NSLog(@"count is %i " , num);
if([count integerValue] == 4 || [count integerValue] == 12){
// show rating screen
}
请帮忙
实际上我认为您标记为 "error" 的行不会崩溃。它 [postCount setObject:count forKey:@"count"];
会导致异常。因为 postCount
在该上下文中是 NSDictionary
,而不是可变字典。因此,它无法响应 setObject:forKey:
.
编辑:正确代码:
if([[NSUserDefaults standardUserDefaults] objectForKey:@"postCount"] !=nil){
postCount = [[[NSUserDefaults standardUserDefaults] objectForKey:@"postCount"] mutableCopy];
count = [postCount objectForKey:@"count"];
count = [NSNumber numberWithInt:([count integerValue] + 1.0)];
int n = [count integerValue];
NSLog(@"hey count is : %i" , n);
[postCount setObject:count forKey:@"count"];
}else{...}
我是 Android 开发人员,现在切换到 IOS,所以我是 IOS 开发的新手。 我在这个地方出错
Thread1v:signal SIGABRT
。如何解决错误
-(void)updatePostCountUserDefaults{
NSMutableDictionary *postCount ;
NSNumber *count;
if([[NSUserDefaults standardUserDefaults] objectForKey:@"postCount"] !=nil){
postCount = [[NSUserDefaults standardUserDefaults] objectForKey:@"postCount"];
count = [postCount objectForKey:@"count"];
count = [NSNumber numberWithInt:([count integerValue] + 1.0)];
int n = [count integerValue];
NSLog(@"hey count is : %i" , n);
[postCount setObject:count forKey:@"count"];
}else{
postCount = [[NSMutableDictionary alloc] init];
count = [NSNumber numberWithInt:1];
[postCount setObject:count forKey:@"count"]; //error-
}
[[NSUserDefaults standardUserDefaults] setObject:postCount forKey:@"postCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
int num = [count integerValue];
NSLog(@"count is %i " , num);
if([count integerValue] == 4 || [count integerValue] == 12){
// show rating screen
}
请帮忙
实际上我认为您标记为 "error" 的行不会崩溃。它 [postCount setObject:count forKey:@"count"];
会导致异常。因为 postCount
在该上下文中是 NSDictionary
,而不是可变字典。因此,它无法响应 setObject:forKey:
.
编辑:正确代码:
if([[NSUserDefaults standardUserDefaults] objectForKey:@"postCount"] !=nil){
postCount = [[[NSUserDefaults standardUserDefaults] objectForKey:@"postCount"] mutableCopy];
count = [postCount objectForKey:@"count"];
count = [NSNumber numberWithInt:([count integerValue] + 1.0)];
int n = [count integerValue];
NSLog(@"hey count is : %i" , n);
[postCount setObject:count forKey:@"count"];
}else{...}