คำถามติดแท็ก nslog

13
วิธีการพิมพ์ชื่อวิธีการและหมายเลขบรรทัดและปิดการใช้งาน NSLog เงื่อนไข?
ฉันกำลังทำการนำเสนอเกี่ยวกับการดีบักใน Xcode และต้องการรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ NSLog อย่างมีประสิทธิภาพ โดยเฉพาะฉันมีคำถามสองข้อ: มีวิธีการอย่างง่ายดาย NSLog ชื่อ / หมายเลขบรรทัดของวิธีการในปัจจุบัน? มีวิธี "ปิดการใช้งาน" NSLogs ทั้งหมดได้อย่างง่ายดายก่อนที่จะรวบรวมรหัสการปล่อยหรือไม่?

5
Objective-C ที่เทียบเท่าสำหรับ“ toString ()” สำหรับใช้กับ NSLog คืออะไร
มีวิธีการที่ฉันสามารถแทนที่ในชั้นเรียนที่กำหนดเองของฉันเพื่อให้เมื่อ NSLog(@"%@", myObject) ถูกเรียกมันจะพิมพ์ฟิลด์ (หรืออะไรก็ตามที่ฉันเห็นว่าสำคัญ) ของวัตถุของฉัน ผมคิดว่าผมกำลังมองหาเทียบเท่า Objective-C ของของ toString()Java

12
เป็นความจริงหรือไม่ที่ไม่ควรใช้ NSLog () กับรหัสการผลิต
ฉันได้รับแจ้งจากเว็บไซต์นี้สองสามครั้ง แต่ฉันต้องการให้แน่ใจว่านี่เป็นกรณีจริง ๆ ฉันคาดหวังว่าจะสามารถโรยฟังก์ชั่นการเรียก NSLog ตลอดทั้งรหัสของฉันและ Xcode / gcc จะตัดการโทรเหล่านั้นออกโดยอัตโนมัติเมื่อสร้างรุ่นวางจำหน่าย / การกระจายของฉัน ฉันควรหลีกเลี่ยงการใช้สิ่งนี้หรือไม่? ถ้าเป็นเช่นนั้นมีทางเลือกอะไรมากที่สุดระหว่างโปรแกรมเมอร์ Objective-C ที่มีประสบการณ์?

3
NSLog / printf specifier สำหรับ NSInteger?
A NSIntegerคือ 32 บิตบนแพลตฟอร์ม 32 บิตและ 64 บิตบนแพลตฟอร์ม 64 บิต มีตัวNSLogระบุที่ตรงกับขนาดNSIntegerหรือไม่ ติดตั้ง Xcode 3.2.5 llvm 1.6 คอมไพเลอร์(นี่เป็นสิ่งสำคัญ gcc ไม่ทำสิ่งนี้) GCC_WARN_TYPECHECK_CALLS_TO_PRINTF เปิด นั่นทำให้ฉันเสียใจที่นี่: #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSInteger i = 0; NSLog(@"%d", i); } return 0; } สำหรับรหัส 32 บิตฉันต้องการตัว%dระบุ แต่ถ้าฉันใช้ตัว%dระบุฉันจะได้รับคำเตือนเมื่อคอมไพล์เป็น 64 …


2
NSLog ที่อยู่หน่วยความจำของอ็อบเจ็กต์ในเมธอดคำอธิบายที่ถูกแทนที่
ฉันกำลังลบล้างวิธีการอธิบายวัตถุ ฉันต้องการทราบวิธีพิมพ์ที่อยู่หน่วยความจำของวัตถุเพื่อแทนที่{???}ในโค้ดด้านล่าง: -(NSString *) description { return [NSString stringWithFormat:@"<SomeClass: %@>\nparmeterOne: %@\nparameterTwo: %@", {???}, self.parameterOne, self.paramterTwo]; } ฉันต้องการให้พิมพ์ในคอนโซลดังนี้: <SomeClass: 0x4c05600> parameterOne: 12 parameterTwo: sausages
116 objective-c  nslog 

11
คำเตือน:“ format not a string literal and no format arguments”
ตั้งแต่อัปเกรดเป็น Xcode 3.2.1 และ Snow Leopard ล่าสุดฉันได้รับคำเตือน "format ไม่ใช่สตริงลิเทอรัลและไม่มีอาร์กิวเมนต์รูปแบบ" จากรหัสต่อไปนี้: NSError *error = nil; if (![self.managedObjectContext save:&error]) { NSLog([NSString stringWithFormat:@"%@ %@, %@", errorMsgFormat, error, [error userInfo]]); } ถ้าerrorMsgFormatเป็นNSStringกับตัวระบุรูปแบบ (เช่น :) "print me like this: %@"มีอะไรผิดปกติกับการNSLogเรียกข้างต้น? และวิธีใดที่แนะนำในการแก้ไขเพื่อไม่ให้เกิดคำเตือน

6
NSLog พร้อมข้อมูล CGPoint
ฉันมี CGPoint ที่เรียกว่าจุดที่ถูกกำหนดให้สัมผัส: UITouch *touch = [touches anyObject]; CGPoint point = [touch locationInView:self]; ฉันต้องการรับค่าพิกัด x ในบันทึกคอนโซลของฉัน: NSLog(@"x: %s", point.x); เมื่อฉันใช้สิ่งนี้เอาต์พุตบันทึกสำหรับสิ่งนี้คือ: x: (ว่าง) ฉันตรวจสอบแล้วว่าจุดนั้นไม่เป็นโมฆะเมื่อสิ่งนี้ถูกเรียกโดยใช้ตัวแก้ไขข้อบกพร่องและนาฬิกาตัวแปร ความช่วยเหลือใด ๆ ที่ชื่นชม ขอบคุณ // :)

9
iOS 10 ไม่พิมพ์ NSLogs
ไม่มีอะไรพิมพ์จากNSLogบน Xcode 8.0 beta (8S128d) printfไม่เปลี่ยนแปลง นี่คือรหัสของฉัน: NSLog(@"hello from NSLog"); printf("hello from printf"); นี่คือผลลัพธ์บน iOS 9 Simulator: 2016-06-17 09:49:10.887 calmapp-dev[28517:567025] hello from NSLog hello from printf นี่คือผลลัพธ์บน iOS 10 Simulator: hello from printf
89 ios  xcode  nslog  xcode8  ios10 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.