Saya ingin dapat men-debug struktur C tanpa harus secara eksplisit mengetik setiap properti yang mereka terdiri.
yaitu saya ingin dapat melakukan sesuatu seperti ini:
CGPoint cgPoint = CGPointMake(0,0);
NSLog(@"%@",cgPoint);
Jelas '% @' tidak akan berfungsi, maka pertanyaannya.
c
objective-c
cocoa
cocoa-touch
Mazniak
sumber
sumber
Jawaban:
Anda dapat mencoba ini:
Ada sejumlah fungsi yang disediakan oleh UIKit yang mengubah berbagai struct CG menjadi
NSString
s. Alasan itu tidak berhasil adalah karena%@
menandakan objek. ACGPoint
adalah struct C (danCGRect
s danCGSize
s).sumber
NSPoint
dan kemudian meneleponNSStringFromPoint
. Sebagai contoh:NSStringFromPoint(NSPointFromCGPoint(point))
Ada beberapa fungsi seperti:
Sebuah contoh:
sumber
sumber
Saya menggunakan makro berikut untuk membantu saya dengan NSRect:
Anda bisa melakukan hal serupa untuk CGPoint:
Menggunakannya sebagai berikut:
Akan menghasilkan yang berikut:
sumber
Anda bisa menggunakannya
NSValue
untuk ini. Sebuah NSValue objek adalah wadah sederhana untuk C tunggal atau Objective-C item data. Ia dapat menampung semua jenis skalar seperti int, float, dan char, serta pointer, struktur, dan id objek.Contoh:
OUTPUT:
NSPoint: {10, 30}
Semoga ini bisa membantu Anda.
sumber
Karena RSS Stack Overflow yang rusak baru saja membangkitkan kembali pertanyaan ini untuk saya, inilah solusi saya yang hampir umum: JAValueToString
Ini memungkinkan Anda menulis
JA_DUMP(cgPoint)
dancgPoint = {0, 0}
login.sumber
Ya, Anda dapat menggunakan beberapa fungsi di bawah ini seperti: Pertama, Anda harus mengubah struct CGPoint menjadi string, lihat contoh
Sebagai contoh:
Seperti ini...
sumber
sumber