1 // Matching properties 2 @interface I1 { 3 } 4 - (int)getProp2; 5 - (void)setProp2:(int)value; 6 @property (readonly) int Prop1; 7 @property (getter = getProp2, setter = setProp2:) int Prop2; 8 @end 9 10 // Mismatched property 11 @interface I2 12 @property (readonly) int Prop1; 13 @end 14 15 // Properties with implementations 16 @interface I3 { 17 int ivar1; 18 int ivar2; 19 int ivar3; 20 int Prop4; 21 } 22 @property int Prop1; 23 @property int Prop2; 24 @property int Prop3; 25 @property int Prop4; 26 @end 27 28 @implementation I3 29 @synthesize Prop2 = ivar2; 30 @synthesize Prop1 = ivar1; 31 @synthesize Prop3 = ivar3; 32 @synthesize Prop4 = Prop4; 33 @end 34