вы на самом деле не заполняете массив.
NSString *arrayString;
объявляет переменную arrayString типа NSString. он не инициализирован (поэтому он заслуживает сбоя при использовании переменной - но может иметь значение 0 при некоторых настройках сборки).
Итак, чтобы назначить переменную:
NSString *arrayString = [NSString stringWithFormat:@"sksjdhf %f\n", 3.3];
arrayWithObjects
добавляет объекты из аргумента (va list), пока не встретится nil / null / 0.
Вы должны правильно настроить оставшиеся переменные / аргументы перед их использованием.
это должно работать так, как вы ожидаете:
NSString * str = @"a string";
NSMutableArray *objectArray = [NSMutableArray arrayWithObjects:str, nil];
for (NSObject * item in objectArray) {
NSLog(@"Class name is: %@", [item className]);
}