Ios 通知应用程序崩溃
我正在尝试将Ios 通知应用程序崩溃,ios,nsnotificationcenter,Ios,Nsnotificationcenter,我正在尝试将NSMutableDictionary传递给NSNotification传递给其他类。 但是当发布NSMutableDictionary时,应用程序崩溃。 有人能帮忙吗? 我正在尝试这个 NSMutableDictionary *temp = [[NSMutableDictionary alloc]init]; NSString *responseString = [[NSString alloc] initWithData:webData encoding:NSUTF8Strin
NSMutableDictionary
传递给NSNotification
传递给其他类。
但是当发布NSMutableDictionary
时,应用程序崩溃。
有人能帮忙吗?
我正在尝试这个
NSMutableDictionary *temp = [[NSMutableDictionary alloc]init];
NSString *responseString = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding];
temp = [responseString JSONValue];
NSLog(@"webdata is %@",temp);
NSLog(@"inside usersignup success");
[[NSNotificationCenter defaultCenter] postNotificationName:CNotifySignupSucess object:temp];
[temp release];
首先,您需要阅读一些iOS编程基础知识。以及
NSMutableDictionary *temp = [[NSMutableDictionary alloc]init];
NSString *responseString = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding];
temp = [responseString JSONValue]; //----> this line is wrong
因为,temp
指针指向新创建的NSMutableDictionary
对象,所以您将其重新分配给JSONValue
方法返回的另一个对象,即autorelease
对象,而您不拥有它,因此无法释放它。实现您想要的目标的一些更好的方法是:
NSString *responseString = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding];
NSMutableDictionary *temp = [responseString JSONValue];
NSLog(@"webdata is %@",temp);
NSLog(@"inside usersignup success");
[[NSNotificationCenter defaultCenter] postNotificationName:CNotifySignupSucess object:temp];
//NO RELEASING the AUTORELEASE OBJECT!!!!
或:
或:
在最后两种情况下,我考虑JSONValue
方法返回NSDictionary
。祝你好运 [[NSNotificationCenter defaultCenter]添加观察者:自选择器:@selector(SignupSussReceived:)名称:CNotifySignupSucess对象:nil];NSMutableDictionary*dict=notification.object;如果([[dict objectForKey:@“Success”]IseQualtString:@“1”]){appDelegate.islogin=TRUE;self.title=nil;[appDelegate.userinfo setObject:[dict objectForKey:@“user_id”]forKey:@“userid”];NSSERDEFAULTS*defaults=[NSSERDEFAULTS standardUserDefaults];NSString*STRENTMP=[NSString STRING stringWithFormat:@“%@”,[dict objectForKey:@“user_id”];[defaults setObject:strtemp forKey:@“userid”];崩溃仅显示objc版本
NSString *responseString = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding];
NSMutableDictionary *temp = [[NSMutableDictionary alloc]initWithDictionary:[responseString JSONValue]];
NSLog(@"webdata is %@",temp);
NSLog(@"inside usersignup success");
[[NSNotificationCenter defaultCenter] postNotificationName:CNotifySignupSucess object:temp];
[temp release];
NSMutableDictionary *temp = [[NSMutableDictionary alloc]init];
NSString *responseString = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding];
[temp addEntriesFromDictionary:[responseString JSONValue]];
NSLog(@"webdata is %@",temp);
NSLog(@"inside usersignup success");
[[NSNotificationCenter defaultCenter] postNotificationName:CNotifySignupSucess object:temp];
[temp release];