2011-10-04 18 views
7

Tôi cố gắng để làm NSLog trên một giá trị float sử dụng:NSLog không hoạt động với phao?

NSLog(@"THE LOG SCORE : %@", x); 

và tôi cũng đã cố gắng:

NSLog(@"THE LOG SCORE : %@", [NSString stringWithFormat:@"%@", x]); 

nhưng nó không làm việc! bất kỳ suy nghĩ tại sao nó sẽ không hoạt động? lỗi tôi nhận được là EXC_BAD_ACCESS

nhờ

Trả lời

36

Các% @ được thiết kế để làm việc trên một đối tượng, một phao không phải là một đối tượng. Để làm một thử float:

NSLog(@"THE LOG SCORE : %f", x); 

Dưới đây là một bài viết hữu ích

http://vormplus.be/blog/article/using-nslog-to-debug-your-iphone-application

+0

Bạn phải nhầm lẫn NSFloat với CGFloat, được định nghĩa là 'phao' và không phải là đối tượng .. Trừ khi có một đối tượng NSFloat mà tôi không biết? –

+0

Không có gì giống như NSFloat. http://stackoverflow.com/questions/6702923/does-nsdouble-nsfloat-nsother-than-nsinteger-exist – vikingosegundo

+2

Để biết thông tin về các thông số khác, hãy xem [Hướng dẫn định dạng chuỗi định dạng của Apple] của Apple (http://developer.apple.com /library/mac/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html). – ughoavgfhw

0

EXC_BAD_ACCESS luôn có nghĩa là bạn đang truy cập một đối tượng mà đã được phát hành @ x là đối phó với objects.So hãy chắc chắn. biến "x" của bạn là một đối tượng còn sống.

+0

Trong xcode4, Chỉnh sửa Đề án-> Đối số-> Biến môi trường, thêm NSZombieEnabled, đặt nó thành YES.U sẽ tìm lỗi. –

Các vấn đề liên quan