I have the following code:
NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
NSString *temp;
for (int i = 0; i < [array count]; i++)
{
temp = [array objectAtIndex:i];
NSLog(@"temp length = %@", [temp length]);
}
I get an EXC_BAD_ACCESS error at the NSLog line. I assume it’s erring out at the [temp length] bit. The weird thing is, I can do other methods of NSString on temp and they work fine, like [temp characterAtIndex:0].
I’ve also tried doing [[array objectAtIndex:i] retain];, but that doesn’t seem to help.
Does anyone know why I’m getting this error?
EDIT: Turns out it was crashing at the NSLog because it was %@ instead of %lu. The real problem was with other code that I had omitted from this post. After playing around with it some more, I got it working.
From my understanding, the “%@” placeholder is for object pointers, “length” returns “NSUInteger” which is not a pointer. Try “%lu” instead of “%@”.