คืออะไรNSParameterAssert
?
ใครช่วยอธิบายด้วยตัวอย่าง?
คืออะไรNSParameterAssert
?
ใครช่วยอธิบายด้วยตัวอย่าง?
คำตอบ:
เป็นวิธีง่ายๆในการทดสอบว่าพารามิเตอร์ของเมธอดไม่ใช่nil
หรือไม่ใช่ 0 โดยพื้นฐานแล้วคุณจะใช้มันเพื่อสร้างเงื่อนไขเบื้องต้นโดยระบุว่าต้องตั้งค่าพารามิเตอร์บางตัว หากไม่ได้ตั้งค่าแมโครจะทำให้แอปพลิเคชันยกเลิกและสร้างข้อผิดพลาดในบรรทัดนั้น ดังนั้น:
- (void)someMethod:(id)someObjectThatMustNotBeNil
{
// Make sure that someObjectThatMustNotBeNil is really not nil
NSParameterAssert( someObjectThatMustNotBeNil );
// Okay, now do things
}
เงื่อนไขเบื้องต้นเป็นวิธีง่ายๆในการตรวจสอบว่าเมธอด / API ถูกเรียกโดยโปรแกรมเมอร์อย่างถูกต้อง แนวคิดก็คือหากโปรแกรมเมอร์ละเมิดเงื่อนไขเบื้องต้นแอปพลิเคชันจะยุติก่อนกำหนด - หวังว่าจะอยู่ระหว่างการดีบักและการทดสอบขั้นพื้นฐาน
NSParameterAssert
สามารถใช้เพื่อทดสอบว่านิพจน์ใด ๆ ประเมินว่าเป็นจริงอย่างไรก็ตามคุณสามารถใช้มันได้เช่นกัน:
NSParameterAssert( index >= 0 ); // ensure no negative index is supplied
Release
กำหนดค่า คุณสามารถควบคุมสิ่งนี้ได้โดยตั้งค่าการENABLE_NS_ASSERTIONS
สร้างใน Xcode เวอร์ชันใหม่กว่าหรือกำหนดNS_BLOCK_ASSERTIONS
มาโครและตั้งค่าเป็น 1 ใน Xcode 5 มีการตั้งค่าโปรเจ็กต์ * เปิดใช้งานการยืนยันพื้นฐาน "ที่ตั้งค่าการสร้างและค่าเริ่มต้นเป็นYes
ในDebug
และNo
ในRelease
การกำหนดค่า