> 
> On 24/02/2011, at 5:56 PM, Trygve Inda wrote:
> 
>> The problem is two-fold:
>> 
>> 1) How can I have nibs, one with MyObjectClass:NSObject and the other with
>> MyObjectClass:NSPreferencePane where MyObjectClass  is essentially the same
>> but with a few #ifdef to have conditional compilation.
> 
> The real problem is that you're trying to define this chimera class in the
> same header. If you split it into two separate headers, each nib only needs to
> know about the header that applies to it. Target Membership will do the rest,
> since the right nib and the right header are part of the same target and
> there's no crosstalk to the other target.

How would I split it into two headers?

In my .m file I can certainly use #ifdef to import the correct .h file, but
IB is still going to see one header with:

@interface MyObjectClass : NSPreferencePane

And another with 

@interface MyObjectClass : NSObject


> Since IB can't 'see' #ifdef in your header, you just can't do it in the same
> header. Neither is there any reason to. Having done that, there's probably no
> merit in trying to merge the code either, just have two separate objects, get
> rid of all the #ifdefs and use Target Membership to select the right one for
> the job.
> 
>> 2) I need IBOutlets in ClassA, ClassB and ClassC to link to MyObjectClass so
>> I can't easily change it to MyObjectClassPrefStyle and MyObjectClassAppStyle
>> since then the IBOutlets would have to point to different types.
> 
> 
> Just make the outlets type id and they can point to anything.

IBOutlet id    controllerA;
IBOutlet id    controllerB;
IBOutlet id    controllerC;

In this case I'd no longer be able to get warnings like "someMethod is not
defined on class controllerA"


:-(



_______________________________________________

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