2009-09-25 25 views
78

Tôi có một CGPoint gọi thời điểm đó đã được gán cho một liên lạc:NSLog với CGPoint dữ liệu

UITouch *touch = [touches anyObject]; 

CGPoint point = [touch locationInView:self]; 

Tôi muốn nhận được tọa độ x giá trị vào giao diện điều khiển đăng nhập của tôi:

NSLog(@"x: %s", point.x); 

Khi tôi sử dụng này, đăng nhập đầu ra cho điều này là:

x: (null)

Tôi đã xác minh rằng điểm không phải là rỗng khi thi s được gọi bằng cách sử dụng trình gỡ lỗi và đồng hồ biến.

Bất kỳ trợ giúp đánh giá cao,

Cảm ơn // :)

Trả lời

239

Trên thực tế, cách dễ nhất để thực đăng nhập một CGPoint là:

NSLog(@"%@", NSStringFromCGPoint(point)); 

Các máy tính để bàn màu cacao tương đương là NSStringFromPoint().

+0

này thậm chí còn tốt hơn. Câu trả lời đầu tiên là cách trọng lượng nhẹ nhất và dễ nhất. Nhưng điều này mang lại cho tôi cả x và y từ CGPoint trong một bộ.Nice :) Công cụ tuyệt vời :) – Spanky

+0

Vì StackOverflow thấy phù hợp để giới thiệu lại câu hỏi này trong nguồn cấp dữ liệu RSS của tôi, tôi cũng có thể pimp giải pháp chung của tôi: http://jens.ayton.se/blag/almost-elegant-cave-man- gỡ lỗi/cho phép bạn đi 'JA_DUMP (điểm);' và nhận “point = {43, 96}” được ghi lại mà không phải lo lắng về mã định dạng. –

+0

Làm thế nào để sử dụng lib của bạn vì nó biên dịch trên I386 nhưng không phải trên ARM? Ý tôi là, làm thế nào tôi có thể làm việc trên các dự án iOS bằng cách sử dụng nó? –

25

point.x là một số dấu chấm động, vì vậy bạn nên sử dụng:

NSLog(@"x: %f", point.x); 
9

Cách đơn giản nhất để đăng nhập một giá trị CGPoint là sử dụng lớp NSValue vì nó sẽ cung cấp cho bạn tất cả các giá trị có liên quan được định dạng độc đáo cho bảng điều khiển. Nó được thực hiện như sau:

NSLog(@"myPoint = %@", [NSValue valueWithCGPoint:myPoint]); 

Bạn cũng có thể sử dụng +valueWithCGRect+valueWithCGSize phương pháp NSValue khi bạn đang cố gắng đăng nhập, chẳng hạn, các frame (CGRect) hoặc size (CGSize) thuộc tính của một UIView.

0

point.x là một điểm số nổi vì vậy bạn nên mã hóa như thế này:

NSLog(@"%@",[NSString StringWithFormat:@"%f",point.x]); 
+3

.... hoặc 'NSLog (@"% f ", point.x)' –

+0

Nếu u muốn String giá trị có nghĩa là u chỉ cần sử dụng này !! –

+4

Bạn đang thực hiện chuỗi định dạng không cần thiết trong chuỗi định dạng. Cách tiếp cận của Philippe và Ahruman đơn giản hơn nhiều và họ đạt được kết quả tương tự. –

1

NSLog(@"point x,y: %f,%f", point.x, point.y);

0

sử dụng:

NSLog (@ "% @", NSStringFromCGPoint (điểm));

Bạn cũng có thể sử dụng NSString để biết sau:

NSStringFromCGPoint
NSStringFromCGSize
NSStringFromCGRect
NSStringFromCGAffineTransform
NSStringFromUIEdgeInsets

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