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];