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