if([elementName isEqualToString:@"EmpWithNameAndID"]){
[emps addObject:empObject];
NSLog(@"count of emps is : %d",emps.count);
self.managedObjectContext = appDelegate.managedObjectContext;
EmpWithName *empWithNameObj = [NSEntityDescription insertNewObjectForEntityForName:@"EmpWithName"
inManagedObjectContext:self.managedObjectContext];
if(!self.empObject){
NSLog(@"Not nil");}
else {
NSLog(@"Yo Nil");
}
empWithNameObj.empID =self.empObject.empID;//@"123"
empWithNameObj.empName =self.empObject.empName;//@"ABC"
NSLog(@"emp object id is: %@",empWithNameObj.empID);
NSLog(@"emp name is %@",empWithNameObj.empName);
if(self.managedObjectContext == nil)
{ NSLog(@"S MOC is nil");}
else {
NSLog(@"S MOC is Not NIL");
}
NSError *error;
if(![self.managedObjectContext save:&error]){
NSLog(@"Failed to save the object");
}
else {
NSLog(@"saved object");
}
if(error == nil)
{
NSLog(@"Good saved");
}
else {
NSLog(@"something went wrong while saving");
}
}
else {
if([elementName isEqualToString:@"empName"] || [elementName isEqualToString:@"EmpID"]){
NSLog(@"Element name is: %@ and its value is : %@ ",elementName,currentElementValue);
if(!empObject)
{
NSLog(@"just empobject not nil");
}
else {
NSLog(@"its nil.empobject");
}
if(!self.empObject){
NSLog(@"Not nil");}
else {
NSLog(@"Yo Nil");
}
[self.empObject setValue:currentElementValue forKey:elementName];
if([elementName isEqualToString:@"empName"]){
NSLog(@"empName stored is %@", self.empObject.empName);
}
if([elementName isEqualToString:@"EmpID"]){
NSLog(@"EmpID value stored is %@",self.empObject.empID);
}
currentElementValue = nil;
}
}
所以上面所有的代码都在 NSXMLParser 的 didEndElement 中。在代码末尾的 else 部分中,就在我将 currentElementValue 设置为 nil 之前,我有两个 if 条件。因此,当 elementName 为 empName 时,它会将其记录到输出“empName stored is (null)”中。但在此之前我有这个日志语句“元素名称是:empName,它的值是:
ABC".
所以我的问题是它是否知道元素名称和它的值为什么它不保存它的值。为什么他们记录为空值?请帮忙。如果需要更多信息,请询问。谢谢