• 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: private methods and variables
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: private methods and variables


  • Subject: Re: private methods and variables
  • From: Torsten Curdt <email@hidden>
  • Date: Wed, 30 Jul 2008 11:26:55 +0200

Where does it say that protocols can't include class methods? If there is documentation indicating as much then there is a bug somewhere and I'd like to know about it.

The following works as expected -- the compiler complains mightily about the lack of conformance to protocol Bob in class Fred.

@protocol Bob
+ (void) foo;
@end

@interface Fred : NSObject <Bob>
@end
@implementation Fred
@end

Got it working now!

I had

@protocol Bob
+ (Bob *)sharedBob; // error: syntax error before 'Bob'
@end // warning: '@end' must appear in an @implementation context

@interface Fred : NSObject <Bob>
...
@end

but it needs to be:

@protocol Bob
+ (NSObject<Bob> *)sharedBob;
@end

However, protocols are not generally used to hide implementation details. It sounds more like you want a combination of public and private headers / declarations.

Definitely sounds like that. Basically I have a framework entry (public header)


@interface Bob {
 @private
    some ivars here
}
+ (Bob *)sharedBob;
- (void)someMethods;
@end

And I would rather have it look like this in public.

@interface Bob
+ (Bob *)sharedBob;
- (void)someMethods;
@end

Still I need those ivars in private though.

For Cocoa, functionality that is supported is made available through public headers. Functionality that is internal to Cocoa is encapsulated in private headers that declare said private interfaces through a combination of categories, class extensions and full-on class declarations.

Any pointers on how this is done?

cheers
--
Torsten
_______________________________________________

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


  • Follow-Ups:
    • Re: private methods and variables
      • From: Bill Bumgarner <email@hidden>
    • Re: private methods and variables
      • From: Jean-Daniel Dupas <email@hidden>
References: 
 >private methods and variables (From: Torsten Curdt <email@hidden>)
 >Re: private methods and variables (From: Ken Thomases <email@hidden>)
 >Re: private methods and variables (From: Torsten Curdt <email@hidden>)
 >Re: private methods and variables (From: "Kyle Sluder" <email@hidden>)
 >Re: private methods and variables (From: Ken Thomases <email@hidden>)
 >Re: private methods and variables (From: Torsten Curdt <email@hidden>)
 >Re: private methods and variables (From: Torsten Curdt <email@hidden>)
 >Re: private methods and variables (From: Ken Thomases <email@hidden>)
 >Re: private methods and variables (From: Torsten Curdt <email@hidden>)
 >Re: private methods and variables (From: Bill Bumgarner <email@hidden>)
 >Re: private methods and variables (From: Torsten Curdt <email@hidden>)
 >Re: private methods and variables (From: Bill Bumgarner <email@hidden>)

  • Prev by Date: Re: Dragging a header file to XIB Dock
  • Next by Date: Re: CSV parsing (large files)
  • Previous by thread: Re: private methods and variables
  • Next by thread: Re: private methods and variables
  • Index(es):
    • Date
    • Thread