• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Accessor works intermittently
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Accessor works intermittently


  • Subject: Re: Accessor works intermittently
  • From: Colin Howarth <email@hidden>
  • Date: Thu, 1 Oct 2009 15:16:44 +0200

Sorry, I accidentally posted my initial question (Doesn't one get a compiler warning about several methods being possible?) only to Stephen, not the list.



On 1 Oct, 2009, at 07:10, Stephen J. Butler wrote:

On Wed, Sep 30, 2009 at 10:16 PM, Colin Howarth <email@hidden> wrote:
Doesn't one get a compiler warning about several methods being possible?

I don't in 3.1.4 with this example. But now that you mention it, I do seem to recall a warning along those lines. Although I don't know quite how to trigger it.

#import <Cocoa/Cocoa.h>

@interface Foo : NSObject
{
}

+ (Foo*) foo;
- (float) mode;

@end

@implementation Foo

+ (Foo*) foo
{
	return [[[Foo alloc] init] autorelease];
}

- (float) mode
{
	return 1.0f;
}

@end


int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

	NSArray *array = [NSArray arrayWithObjects:[Foo foo], [Foo foo], [Foo
foo], nil];

	NSLog( @"foo0 = %f", [[array objectAtIndex:0] mode] );
	NSLog( @"foo0 = %f", [(Foo*)[array objectAtIndex:0] mode] );

   [pool drain];
   return 0;
}



Simple, replace

+ (Foo*) foo

with

+ (id) foo

in Foo.h and Foo.m


You then get the following warnings:

.../main.m: 19: warning: multiple methods named '-mode' found
.../AppKit.framework/Headers/NSMatrix.h:123: warning: using '- (NSMatrixMode)mode'
.../Foo.h: 16 : warning: also found '-(float)mode'
.../AppKit.framework/Headers/NSColorPanel.h:97: warning: also found '-(NSColorPanelMode)mode'


The log then gives:

2009-10-01 15:05:30.110 bar[36703:a0f] foo0 = 0.000000
2009-10-01 15:05:30.118 bar[36703:a0f] foo0 = 1.000000



I like the way it picks one at random. I mean, "hey, as long as we can start the program..."
(I'm using 3.2 64-bit, btw)


--colin






_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Prev by Date: Re: Mixed Core Data and "static" nodes in outline view
  • Next by Date: Re: UIGraphicsBeginImageContext thread safety
  • Previous by thread: Re: Mixed Core Data and "static" nodes in outline view
  • Next by thread: Re: Accessor works intermittently
  • Index(es):
    • Date
    • Thread