| // Matching properties | |
| @interface I1 { | |
| } | |
| - (int)getProp2; | |
| - (void)setProp2:(int)value; | |
| @end | |
| // Mismatched property | |
| @interface I2 | |
| @property (readonly) float Prop1; | |
| @end | |
| // Properties with implementations | |
| @interface I3 { | |
| int ivar1; | |
| int ivar2; | |
| int ivar3; | |
| int Prop4; | |
| } | |
| @property int Prop1; | |
| @property int Prop2; | |
| @property int Prop3; | |
| @property int Prop4; | |
| @end | |
| @implementation I3 | |
| @synthesize Prop1 = ivar1; | |
| @synthesize Prop2 = ivar3; | |
| @dynamic Prop3; | |
| @synthesize Prop4; | |
| @end |