นับตั้งแต่เริ่มทำงานกับแอป iOS และวัตถุประสงค์ C ฉันรู้สึกงงงวยกับสถานที่ต่างๆที่สามารถประกาศและกำหนดตัวแปรได้ ในอีกด้านหนึ่งเรามีแนวทาง C แบบเดิมในทางกลับกันเรามีคำสั่ง ObjectiveC ใหม่ที่เพิ่ม OO ไว้ด้านบน คุณช่วยให้ฉันเข้าใจแนวทางปฏิบัติที่ดีที่สุดและสถานการณ์ที่ฉันต้องการใช้ตำแหน่งเหล่านี้สำหรับตัวแปรของฉันและอาจแก้ไขความเข้าใจในปัจจุบันของฉันได้ไหม
นี่คือคลาสตัวอย่าง (.h และ. m):
#import <Foundation/Foundation.h>
// 1) What do I declare here?
@interface SampleClass : NSObject
{
// 2) ivar declarations
// Pretty much never used?
}
// 3) class-specific method / property declarations
@end
และ
#import "SampleClass.h"
// 4) what goes here?
@interface SampleClass()
// 5) private interface, can define private methods and properties here
@end
@implementation SampleClass
{
// 6) define ivars
}
// 7) define methods and synthesize properties from both public and private
// interfaces
@end
- ความเข้าใจของฉันเกี่ยวกับ 1 และ 4 คือการประกาศและคำจำกัดความที่ใช้ไฟล์สไตล์ C ซึ่งไม่มีความเข้าใจใด ๆ เกี่ยวกับแนวคิดของคลาสดังนั้นจึงต้องใช้ว่าจะใช้อย่างไรใน C ฉันเคยเห็นพวกเขา ใช้สำหรับการปรับใช้ singletons แบบคงที่ที่อิงมาก่อน มีการใช้งานสะดวกอื่น ๆ ที่ฉันขาดหายไปหรือไม่?
- สิ่งที่ฉันใช้จากการทำงานกับ iOS คือ ivars ถูกตัดออกไปอย่างสมบูรณ์นอกคำสั่ง @synthesize ดังนั้นส่วนใหญ่จึงถูกละเลย เป็นอย่างนั้นหรือ?
- เกี่ยวกับ 5: ทำไมฉันถึงต้องการประกาศเมธอดในอินเทอร์เฟซส่วนตัว? วิธีการคลาสส่วนตัวของฉันดูเหมือนจะคอมไพล์ได้ดีโดยไม่มีการประกาศในอินเทอร์เฟซ ส่วนใหญ่อ่านง่ายหรือไม่?
ขอบคุณหลาย ๆ คน!