我有一些代码,看起来像这样:崩溃错误帮助的NSString
NSString *_parse = [NSString stringWithFormat:@"//%@",_user];
NSString *_status = [Parser parse:_parse:@"status"]; //parses the xml
if ([_status isEqualToString:@"1"]) { //error here
}
应用程序崩溃时,它会检查,如果两个字符串相等。然而,当我更换的代码与此第一线能正常工作:
NSString *_parse = [NSString stringWithFormat:@"//user1"];
但不使用“用户”伊娃,我需要使用,因为值可以是不同的。 ivar“用户”是一个NSString,声明较早[self setUser:@"userX"];
我应该怎么做才能解决这个问题?由于
编辑:这里是解析XML代码:
+ (NSString *)dataFilePath:(BOOL)forSave {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentsPath = [documentsDirectory stringByAppendingPathComponent:@"hangout.xml"];
return documentsPath;
}
+ (MyViewController *)parse:(NSString *)nodesForPath:(NSString *)elementsForName {
NSString *filePath = [self dataFilePath:FALSE];
NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:filePath];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error];
if (doc == nil) { return nil; }
MyViewController *view = [[[MyViewController alloc] init] autorelease];
NSArray *getVersionInfo = [doc nodesForXPath:nodesForPath error:nil];
for (GDataXMLElement *versionInfo in getVersionInfo) {
NSArray *elm1 = [versionInfo elementsForName:elementsForName];
GDataXMLElement *elm2 = (GDataXMLElement *) [elm1 objectAtIndex:0];
return elm2.stringValue;
}
[doc release];
[xmlData release];
return view;
}
请发布应用程序崩溃时获得的错误消息以及设置_user变量的代码。 – Jim 2011-02-18 21:34:02