คุณสมบัติอ่านอย่างเดียวใน Objective-C?
ฉันได้ประกาศคุณสมบัติแบบอ่านอย่างเดียวในอินเทอร์เฟซของฉันดังนี้: @property (readonly, nonatomic, copy) NSString* eventDomain; บางทีฉันอาจจะเข้าใจคุณสมบัติผิด แต่ฉันคิดว่าเมื่อคุณประกาศเป็นreadonlyคุณสามารถใช้ตัวตั้งค่าที่สร้างขึ้นภายใน.mไฟล์การนำไปใช้งาน ( ) แต่เอนทิตีภายนอกไม่สามารถเปลี่ยนค่าได้ คำถาม SO นี้บอกว่านั่นคือสิ่งที่ควรเกิดขึ้น นั่นคือพฤติกรรมที่ฉันตามมา อย่างไรก็ตามเมื่อพยายามใช้ standard setter หรือ dot syntax เพื่อตั้งค่าeventDomainภายในเมธอด init ของฉันมันทำให้ฉันมีunrecognized selector sent to instance.ข้อผิดพลาด แน่นอนฉันกำลัง@synthesizeมีทรัพย์สิน พยายามใช้มันดังนี้: // inside one of my init methods [self setEventDomain:@"someString"]; // unrecognized selector sent to instance error ฉันเข้าใจผิดเกี่ยวกับการreadonlyประกาศเกี่ยวกับทรัพย์สินหรือไม่? หรือมีอย่างอื่นเกิดขึ้น?