I'm having troubles looping through a NSArray.
Here's my code
db = [[BrowserController currentBrowser] databaseOutline];
int rowNumber = [db numberOfRows];
int i = 0;
if (rowNumber > 0 && i <= rowNumber)
{
while ([resultSet next])
{
NSDictionary *infos = [resultSet resultDictionary];
for (NSString *field in fields)
{
NSLog(@"field = %@", field);
NSString *zID = nil;
if ([field isEqualToString:@"ZSTUDY.ZID"])
{
zID = [infos objectForKey:[self.fieldsName objectForKey:field]];
}
NSManagedObject *curObj = [db itemAtRow:i++];
NSLog(@"i = %d", i);
NSString *browserID = [curObj valueForKey:@"StudyID"];
//NSString *key = [[[db sortDescriptors] objectAtIndex:0]key];
// NSLog(@"key = %@", key);
if ([zID isEqualToString:browserID])
{
NSLog(@"They are the same");
if ([field isEqualToString:@"ZSERIES.ZDATE"] || [field isEqualToString:@"ZSERIES.ZDATEADDED"] || [field isEqualToString:@"ZSERIES.ZDATEOPENED"]) {
NSNumber *number = [infos objectForKey:[self.fieldsName objectForKey:field]];
if (number && ![number isKindOfClass:[NSNull class]])
{
int result = [number intValue] + 11324*(60*60*24);
NSDate *date = [NSDate dateWithTimeIntervalSince1970:result];
[csvWriter writeField:date];
}
else
{
[csvWriter writeField:@""];
}
}
else
{
NSString *queryResult= [infos objectForKey:[self.fieldsName objectForKey:field]];
NSLog(@"result = %@", queryResult);
if (queryResult && ![queryResult isKindOfClass:[NSNull class]])
{
[csvWriter writeField:queryResult];
}
else
{
[csvWriter writeField:@""];
}
}
}
else
{
NSLog(@"They are different");
break;
}
}
}
[csvWriter writeLine];
}
[csvWriter closeFile];
[csvWriter release];
[database close];
}
}];
Fyi : I'm trying to compare two NSString *,
NSString zID* = [infos objectForKey:[self.fieldsName objectForKey:field]];
and
NSString *browserID = [curObj valueForKey:@"StudyID"];
Those, are the link between a database, and my view. I want to export the database into a .csv file, but only if the items is currently appearing on the view.
To do so, I took a field from the view, and took the same from the DB. Their field name are different, that's why I'm doing it this way.
The algorithm is simple, I'm selecting the 1st item in my view with
NSManagedObject *curObj = [db itemAtRow:i];
and I want to go through the NSArray *fields
for (NSString *field in fields)
However, the NSString *field always has the same value, which is the first contained in my NSArray *fields.
Here is the output :
2015-11-18 12:22:37.655 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.655 Hidden[38468:400889] i = 1
2015-11-18 12:22:37.657 Hidden[38468:400889] They are different
2015-11-18 12:22:37.657 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.657 Hidden[38468:400889] i = 2
2015-11-18 12:22:37.658 Hidden[38468:400889] They are different
2015-11-18 12:22:37.659 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.659 Hidden[38468:400889] i = 3
2015-11-18 12:22:37.660 Hidden[38468:400889] They are different
2015-11-18 12:22:37.660 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.660 Hidden[38468:400889] i = 4
2015-11-18 12:22:37.668 Hidden[38468:400889] They are different
2015-11-18 12:22:37.668 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.668 Hidden[38468:400889] i = 5
2015-11-18 12:22:37.793 Hidden[38468:400889] They are different
2015-11-18 12:22:37.794 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.794 Hidden[38468:400889] i = 6
2015-11-18 12:22:37.796 Hidden[38468:400889] They are different
2015-11-18 12:22:37.796 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.796 Hidden[38468:400889] i = 7
2015-11-18 12:22:37.830 Hidden[38468:400889] They are different
2015-11-18 12:22:37.831 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.831 Hidden[38468:400889] i = 8
2015-11-18 12:22:37.833 Hidden[38468:400889] They are different
2015-11-18 12:22:37.833 Hidden[38468:400889] field = ZSERIES.ZSTUDY
2015-11-18 12:22:37.833 Hidden[38468:400889] i = 9
What did I do wrong ?
I'll add more informations if you guys request for it.
Thanks.
Actually, my problem was the break statement.
Removed it, and now my NSArray* loops perfectly.