当我在NSLog中显示我的数据时,它显示正常。但是当我解析数据时将数据插入到数组中时,数组显示错误的有序数据。虽然我iserting我得到空值HNM_Id。所以我无法插入。哪里有问题?插入失败:数据类型不匹配
这是我使用的代码:
-(void)parseResponse:(NSData*)data{
NSString *xmlStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"parseResponse Xml string %@",xmlStr);
[sqliteManager deleteLoginDetails];
TBXMLEx *xml = [TBXMLEx parserWithXML:xmlStr];
if (xml.rootElement) {
TBXMLElementEx *returnNode = xml.rootElement;
TBXMLElementEx *fileNode = [returnNode child:@"AllHospitalNetwork"];
while ([fileNode next]) {
NSMutableArray* allHospitalNetwork = [NSMutableArray new];
TBXMLElementEx *hospitalNetworkNode = [fileNode child:@"HospitalNetwork"];
while ([hospitalNetworkNode next]) {
NSMutableDictionary* hospitalNetwork = [NSMutableDictionary new];
TBXMLElementEx *HNM_IdNode = [hospitalNetworkNode child:@"HNM_ID"];
NSLog(@"HNM is %@",HNM_IdNode);
if (HNM_IdNode) {
[hospitalNetwork setObject:HNM_IdNode.value forKey:@"HNM_ID"];
NSLog(@"HNM1 is %@",HNM_IdNode);
NSLog(@"HNM2 is %@",HNM_IdNode.value);
}
TBXMLElementEx *HNM_Network_NameNode = [hospitalNetworkNode child:@"HNM_Network_Name"];
if (HNM_Network_NameNode) {
[hospitalNetwork setObject:[NSString stringWithFormat:@"%@",HNM_Network_NameNode.value] forKey:@"HNM_Network_Name"];
}
TBXMLElementEx *HNM_StatusNode = [hospitalNetworkNode child:@"HNM_Status"];
if (HNM_StatusNode) {
[hospitalNetwork setObject:HNM_StatusNode.value forKey:@"HNM_Status"];
}
TBXMLElementEx *HNM_Created_DateNode = [hospitalNetworkNode child:@"HNM_Created_Date"];
if (HNM_Created_DateNode) {
[hospitalNetwork setObject:HNM_Created_DateNode.value forKey:@"HNM_Created_Date"];
}
TBXMLElementEx *HNM_Created_ByNode = [hospitalNetworkNode child:@"HNM_Created_By"];
if (HNM_Created_ByNode) {
[hospitalNetwork setObject:HNM_Created_ByNode.value forKey:@"HNM_Created_By"];
}
TBXMLElementEx *HNM_Modified_DateNode = [hospitalNetworkNode child:@"HNM_Modified_Date"];
if (HNM_Created_ByNode) {
[hospitalNetwork setObject:HNM_Modified_DateNode.value forKey:@"HNM_Modified_Date"];
}
TBXMLElementEx *HNM_Modified_ByNode = [hospitalNetworkNode child:@"HNM_Modified_By"];
if (HNM_Modified_ByNode) {
[hospitalNetwork setObject:HNM_Modified_ByNode.value forKey:@"HNM_Modified_By"];
}
[allHospitalNetwork addObject:hospitalNetwork];
NSLog(@"allHospitalNetwork insert is %@ ",allHospitalNetwork);
}
[sqliteManager insertHospitalNetwork:allHospitalNetwork];
}
parseResponse XML字符串的NSLog:
<?xml version="1.0"?>
<AllLoginDetails>
<AllHospitalNetwork>
<HospitalNetwork>
<HNM_ID>1</HNM_ID>
<HNM_Network_Name>Health Care</HNM_Network_Name>
<HNM_Status>A</HNM_Status>
<HNM_Created_Date>24/06/2013 17:46:58</HNM_Created_Date>
<HNM_Created_By>1</HNM_Created_By>
<HNM_Modified_Date />
<HNM_Modified_By />
</HospitalNetwork>
</AllHospitalNetwork>
但阵列值顺序改变:
allHospitalNetwork insert is (
{
"HNM_Created_By" = 1;
"HNM_Created_Date" = "24/06/2013 17:46:58";
"HNM_ID" = 1;
"HNM_Modified_By" = "";
"HNM_Modified_Date" = "";
"HNM_Network_Name" = "Health Care";
"HNM_Status" = A;
}
插入:
插入失败:数据类型不匹配
以前我的代码是工作...现在它不工作... – user2967559