关于iPhone中的XML解析
我正在开发一个应用程序,我在做XML解析。我在[xmlparse parse]
方法中发现错误。关于iPhone中的XML解析
错误:
[NSCFString bytes]: unrecognized selector sent to instance 0x3df6310
2010-04-30 00:09:46.302 SPCiphone2[4234:1003] void SendDelegateMessage
(NSInvocation*): delegate (<CFNotificationCenter 0x3d09670 [0x87dca0]>)
failed to return after waiting 10 seconds. main run loop mode:
kCFRunLoopDefaultMode
代码片段:
responseOfWebResultData = [[NSMutableString alloc]
initWithData:responseData
encoding:NSUTF8StringEncoding];
NSLog(@"result: %@", responseOfWebResultData);
// starting the XML parsing
if (responseOfWebResultData) {
@try {
xmlParser = [[NSXMLParser alloc] initWithData:responseOfWebResultData];
[xmlParser setDelegate:self];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
[responseOfWebResultData release];
}
@catch (NSException *e) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Please"
message:[e reason]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
你不应该传递一个的NSString *为initWithData :.你应该这样做:
xmlParser = [[NSXMLParser alloc] initWithData:responseData];
错误说,你要发送的消息bytes
到NSCFString的实例,这是一个的NSString *,即使你宣布它作为一个的NSMutableString *,因为这是一个动态类型化语言,但如果您尝试将其转换为其他类型,则类类型不会自动转换。
@ lucius,你是说XMLParser应该只需要字节码数据? – Tirth 2010-04-30 06:21:21
我这么认为。当方法名称是“initWithData:”时,你应该传递一个NSData实例而不是NSString。 – lucius 2010-04-30 06:33:40
好吧。如果我们评论 responseOfWebResultData = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@“result:%@”,responseOfWebResultData);两条线都没有被其他代码使用。 – Tirth 2010-04-30 07:33:33
我们可否看到数据? – dwery 2010-04-29 18:50:17