// Matching properties
@interface I1 {
}
- (int)getProp2;
- (void)setProp2:(int)value;
@property (readonly) int Prop1;
@property (getter = getProp2, setter = setProp2:) int Prop2;
@end
// Mismatched property
@interface I2
@property (readonly) int 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 Prop2 = ivar2;
@synthesize Prop1 = ivar1;
@synthesize Prop3 = ivar3;
@synthesize Prop4 = Prop4;
@end