It 'works' for me too, I just warnings from Xcode. Anyway, I'll check in case I made a typo or something.
Thanks! Martin On 28, Nov, 2010, at 9:50 AM, Stephen J. Butler wrote: > On Sun, Nov 28, 2010 at 2:15 AM, Martin Hewitson > <martin.hewit...@aei.mpg.de> wrote: >> Suppose I have a formal protocol which defines a method: >> >> - (NSArray*)objects; >> >> Then I implement a class which implements this protocol. To do that I make a >> property: >> >> @property (nonatomic, readwrite, retain) NSArray * objects; >> >> and put the appropriate synthesize statement in the implementation. >> >> I get compiler warnings that this class doesn't implement the protocol. It >> seems it doesn't take the synthesized getter as being an implementation of >> the -objects method. >> >> I also tried explicitly adding the implementation, but the warning remains: >> >> - (NSArray*) objects >> { >> return objects; >> } >> >> Am I doing something wrong here, or is it not possible to use a property to >> satisfy a protocol? > > Works for me: > > > #import <Foundation/Foundation.h> > > @protocol Bar > - (NSArray*) objects; > @end > > @interface Foo : NSObject < Bar > { > NSArray *objects; > } > @property (nonatomic, readwrite, retain) NSArray *objects; > @end > > @implementation Foo > #if 0 > - (NSArray*) objects { return objects; } > - (void) setObjects:(NSArray*)o { > [o retain]; > [objects autorelease]; > objects = o; > } > #else > @synthesize objects; > #endif > @end > > int main (int argc, const char * argv[]) { > NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; > > Foo *f = [[[Foo alloc] init] autorelease]; > id< Bar > b = f; > > f.objects = [NSArray arrayWithObjects:@"one", > @"two", @"three", nil]; > NSLog( @"objects = %@", [b objects] ); > > [pool drain]; > return 0; > } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Martin Hewitson Albert-Einstein-Institut Max-Planck-Institut fuer Gravitationsphysik und Universitaet Hannover Callinstr. 38, 30167 Hannover, Germany Tel: +49-511-762-17121, Fax: +49-511-762-5861 E-Mail: martin.hewit...@aei.mpg.de WWW: http://www.aei.mpg.de/~hewitson ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ _______________________________________________ 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