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

Reply via email to