2011-12-06 10 views

Trả lời

18

Hãy tìm cách phức tạp nhất, có trách nhiệm chúng tôi?

NSArray *myArray = [NSArray array]; 
id *objects = malloc(sizeof(id) * myArray.count); 
[myArray getObjects:objects range:NSMakeRange(0, myArray.count)]; 

char **strings = malloc(sizeof(char *) * myArray.count); 

for (int i = 0; i < myArray.count; i++) 
{ 
    strings[i] = [objects[i] UTF8String]; 
} 

printf("<"); 
for (int i = 0; i < myArray.count; i++) 
{ 
    printf("%s" strings[i]); 
    if (i != myArray.count - 1) 
     printf(", "); 
} 
printf(">"); 

free(objects); 
free(strings); 

Tất nhiên, bạn luôn có thể chỉ làm điều đó như thế này:

NSLog(@"%@", myArray); 
+1

Cảm ơn bạn. Tôi lấy nó: – Xtrician

+10

Điều này được chấp nhận như thế nào? Tôi chỉ là một người thông minh –

+2

Khá ấn tượng. Tôi đang thiếu một số thay đổi bit… – vikingosegundo

25

Cách đơn giản nhất là chỉ cần:

NSLog(@"%@", myArray); 

Hoặc, nếu bạn muốn sử dụng liệt kê nhanh để in từng đối tượng theo cách riêng của bạn:

for (NSString *string in myArray) { 
    NSLog(@"%@", string); 
}