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条件が2つあります。したがって、elementNameがempNameの場合、これは出力「empName stored is (null)」に記録されます。しかし、その前に、このログステートメント「要素名は: empName で、その値は:
ABC".
私の質問は、要素名とその値を知っている場合、なぜその値を保存しないのかということです。null としてログに記録するのはなぜですか? 助けてください。さらに情報が必要な場合は、お問い合わせください。ありがとう