ฉันกำลังทำงานกับแอป iOS ฉันอยากให้มันรองรับ iOS 7 และ 8 มันไปได้สวยทีเดียว แต่ก็มีส่วนต่างๆ มากมายในแอปที่ใช้ Apple API API เหล่านี้บางส่วนทำงานได้ทั้งใน iOS 8 และ 7 อย่างไรก็ตาม API บางส่วนเลิกใช้งานแล้วใน iOS 8 ดังนั้นฉันจึงไปที่ไซต์นักพัฒนาซอฟต์แวร์ของ Apple เพื่อดูว่าจะแทนที่ด้วยอะไร (วิธีการใหม่/ฯลฯ....)
อย่างไรก็ตาม ตอนนี้ฉันมีปัญหาว่าแอปจะทำงานบน iOS 8 ได้ดี แต่บางส่วนกลับไม่ทำงานอย่างถูกต้องบน iOS 7 เนื่องจากฉันพยายามใช้ iOS 8 API...... (555) .
ฉันแค่อยากจะรู้ว่าอะไรคือวิธีที่ดีที่สุดในการใช้โค้ดซึ่งใช้งานได้กับ iOS 8 และ 7 ฉันมีไอเดียเล็กๆ น้อยๆ (ด้านล่าง) แต่ฉันไม่แน่ใจว่าวิธีไหนดีที่สุด:
ไอเดีย 1
เมื่อใดก็ตามที่ฉันมีโค้ดที่ใช้ไม่ได้กับทั้งสองระบบปฏิบัติการ ฉันจะใช้ฟังก์ชัน if (ซึ่งเรียกมาโคร) ดังนี้:
if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
// iOS 7 device. Use iOS 7 apis.
}
else {
// iOS 8 (or higher) - use iOS 8 apis.
}
ไอเดีย 2
ฉันกำลังคิดที่จะใช้คำจำกัดความ ifdef ทั่วทั้งแอปดังนี้:
#ifdef __IPHONE_8_0
// iOS 8 code here....
#else
// iOS 7 code here....
#endif
วิธีไหนดีกว่ากัน? ฉันคิดว่าแนวคิดที่สองเร็วกว่ามากและใช้ทรัพยากรน้อยกว่าใช่ไหม
หรือความคิดของฉันทั้งคู่เป็นขยะ? มีวิธีที่ดีกว่ามากในการแก้ปัญหานี้หรือไม่?
ขอบคุณสำหรับเวลาของคุณแดน