I am encountering what I believe to be a spurious compiler warning. I wonder whether this is a clue that I am doing something differently to how I "should" do it. The problem comes if I define a protocol containing a property and then define that property in a base class that does NOT conform to the (whole) protocol. When I subclass that base class, I get warnings about how the property is not defined.
Sample code to demonstrate this in a fresh Cocoa project (main.m) with Xcode 3.2.1/gcc 4.2 is as follows: //========== @protocol MyProtocol <NSObject> @property int genericProperty; -(void)subclassSpecificImplementationOfGenericFunction; @end @interface MyBaseClass : NSObject @property int genericProperty; @end @interface MySubclass : MyBaseClass <MyProtocol> -(void)subclassSpecificImplementationOfGenericFunction; @end @implementation MyBaseClass @synthesize genericProperty; @end @implementation MySubclass -(void)subclassSpecificImplementationOfGenericFunction { return; } // I find myself writing "@dynamic genericProperty" here to shut up the compiler warning // that reads "warning: property 'genericProperty' requires method '-genericProperty' to be defined - use @synthesize, @dynamic or provide a method implementation" @end //========== Aside from the warning, this compiles and can be tested with the following code which runs correctly, printing out "ok (1, 2)": //========== MySubclass *s = [[MySubclass alloc] init]; s.genericProperty = 1; int a = s.genericProperty; id<MyProtocol> s2 = s; s2.genericProperty = 2; int b = s2.genericProperty; printf("ok (%d %d)\n", a, b); //========== Can anybody comment on whether I am doing something strange here, or whether it's just something the compiler is getting confused about? I think it should have enough information to deduce that "genericProperty" is implemented in the superclass and hence the subclass conforms to the protocol. Thanks for any comments. Jonny_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com