2011-10-20 12 views
15

Tôi đã xem xét các vấn đề tương tự trên trang web nhưng chưa đạt được giải pháp cho đến nay vì vậy tôi phải làm điều gì đó sai.nhận chiều dài/số NSArray - Mục tiêu C

Về cơ bản, tôi đang nhập một tệp văn bản, sau đó tách từng dòng thành một phần tử của một mảng. Kể từ khi tập tin văn bản sẽ được cập nhật vv .. Tôi sẽ không biết chính xác số lượng các dòng trong tập tin và do đó có bao nhiêu phần tử trong mảng. Tôi biết trong Java bạn có thể làm .length() vv .. và được cho là trong mục tiêu C bạn có thể sử dụng 'đếm' nhưng tôi không có may mắn trả về chiều dài mảng của tôi ... gợi ý?

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"allshows" 
                ofType:@"txt"]; 
NSString *fileString = [NSString stringWithContentsOfFile:filePath]; 

NSArray *lines = [fileString componentsSeparatedByString:@"\n"]; 

NSUInteger *elements = [lines count]; 
NSLog(@"Number of Shows : ", elements); 

và những gì đang được đầu ra là NOTHING. như trong "Số lượng chương trình:" - trống, giống như nó thậm chí không được tính.

Cảm ơn bạn đã giúp đỡ nào!

Trả lời

16

Bạn đang thiếu các chuỗi định dạng giữ chỗ. Nó phải là:

NSLog(@"Number of shows: %lu", elements); 
+0

Tôi thực sự xấu hổ vì một sai lầm khủng khiếp như vậy, cảm ơn bạn đời! – Didier

5

Bạn cần phải sử dụng một specifier định dạng để in một số nguyên (%d):

NSLog(@"Number of Shows : %d", elements); 
0

Nhìn vào bài đăng khác của bạn, có vẻ như bạn là nhà phát triển Java. Trong System.out của Java, bạn chỉ cần thêm các biến. Trong Objective-C, tôi đề nghị bạn nhìn vào "specifier format in". Mục tiêu-C sử dụng cùng một định dạng.