> 
> On 25/02/2011, at 10:26 AM, Trygve Inda wrote:
> 
>> It seems to be pretty random when using two header files, but a common
>> implementation. There should be a way to drag a header to IB and have it
>> reinterpret the class, but it just complains that the superclass is wrong.
>> 
>> I guess the issue here is that if I make them separate classes, then the
>> common classes can only link to them by id and not by a real type.
>> 
>> @interface MyRetailClass : NSPreferencePane
>> @interface MyAppStoreClass : NSObject
>> 
>> Then in my common classes:
>> 
>> ClassA
>> ClassB
>> ClassC
>> 
>> I have to do
>> 
>> IBOutlet id     mainClass;
>> 
>> Instead of
>> 
>> IBOutlet MyRetailClass*     mainClass;
>> 
>> Or
>> 
>> IBOutlet MyAppStoreClass*     mainClass;
>> 
>> So when ClassA does [mainClass someArray] as an accessor, I don't get the
>> same compiler checking I would have with explicit classes. But with explicit
>> classes, I can't properly connect the objects in IB in both versions.
> 
> 
> So use a formal protocol:
> 
> @interface MyRetailClass : NSPreferencePane<MyCommonProtocol>
> @interface MyAppStoreClass : NSObject<MyCommonProtocol>
> 
> 
> Then in A, B and C have:
> 
> IBOutlet id<MyCommonProtocol> mainClass;
> 
> 
> Thus you can connect the outlet to any object that implements the
> MyCommonProtocol protocol. I'm not sure how far IB will go to check protocols,
> but in any case there isn't really much chance you'll make a mistake here is
> there? I mean, you know how these things are meant to go together. Type
> checking is great and all, but it's no substitute for common sense.

So what file would I define this protocol in... The two .h files for the
unique classes? Each of the two classes has 12-16 methods and 10 of these
are common (and thus could be a protocol).

@protocol MyCommonProtocol

@optional
-(void)someMethod;
-(void)someotherMethod;
@end

It'd be nice if IB let me define a class two different ways and linked only
to the header file (which I should be able to replace in IB without a
"superclass mismatch warning"


_______________________________________________

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