I know Apple is big on having you use NS objects instead of true primitive types, but I need the capabilities of an array (namely direct access of items at indices). However, it seems that they are so very keen on using NS objects that I can't find a single tutorial online or in a textbook about how to use basic primitive arrays. I want something that does things like this does in Java:
String inventory[] = new String[45];
inventory[5] = "Pickaxe";
inventory[12] = "Dirt";
inventory[8] = "Cobblestone";
inventory[12] = null;
System.out.println("There are " + inventory.length + " slots in inventory: " + java.util.Arrays.toString(inventory));
The following is the closest I've gotten in Objective-C, but it won't run properly:
NSString *inventory[45];
inventory[5] = @"Pickaxe";
inventory[12] = @"Dirt";
inventory[8] = @"Cobblestone";
inventory[12] = nil;
NSArray *temp = [NSArray arrayWithObjects:inventory count:45];
NSLog(@"There are %i slots in inventory: %@", [temp count], [temp description]);
Also, if at all possible, is there something in O-C that will give me the count of non-null/non-nil objects in the array? (This way, I can tell how much space is left in the inventory so that the player can't pack away anything if it's full)
inventorybe a list of variadic arguments. User [NSArray arrayWithObjects:count:] instead.nilvalue in therenil, and this behaviour is documented. You should check for nil before passing it to the initializer methods.