Search code examples
iosobjective-cnsarray

NSArray difference between firstObject and objectAtIndex:0


In the following example array objectAtIndex:0 crashes but firstObject resulting a nil value. Why this happening?

NSArray *array = [NSArray new];
id obj1 = [array firstObject]; // this is giving nil value
id obj2 = [array objectAtIndex:0]; // this line crashes

Solution

  • Using firstObject is a system defined API which returns nil if there is none. But if you try to access objectAtIndex it will give NSRange exception and app will crash.