• 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: adding a delegate to a class
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: adding a delegate to a class


  • Subject: Re: adding a delegate to a class
  • From: "Jesse Armand" <email@hidden>
  • Date: Tue, 10 Jun 2008 20:52:00 +0700

Hello Angelo,

I think this code might help you:

@protocol BackgroundObjDelegate <NSObject>
@optional

- (void)showText:(NSString*)text;

@end

@interface BackgroundObj : NSObject
{
       id<BackgroundObjDelegate> _delegate;
}

@property(assign) id<BackgroundObjDelegate> delegate

- (void) sayHi;

@end

@implementation BackgroundObj

@synthesize delegate=_delegate;

- (void) sayHi
{
       if ([_delegate respondsToSelector:@selector(showText:)])
           [_delegate showText:@"Hi"];
}

@end

Then, you could implement your delegate class, for example:

@interface ForegroundObj : NSObject <BackgroundObjDelegate>
{
     // Insert your instance variables
}

- (void)showText:(NSString*)text;

@end

@implementation ForegroundObj

- (id)init
{
        if (![super init])
             return nil;

        BackgroundObj *obj = [[BackgroundObj alloc] init];
        obj.delegate = self;        // set the background object delegate

        return self;
}

- (void)showText:(NSString*)text
{
        // Insert your code
}

@end

If you have any questions, just ask, and please read Apple Docs, since
it's already quite complete in explaining these.

Regards,

Jesse
-------------------------------------------------------------------------------------------------
barablu (www.barablu.com), iPhone developer (http://jessearm.blogspot.com)

2008/6/10 Angelo Chen <email@hidden>:
> Hi,
>
> I have a code like this:
>
> @interface BackgroundObj : NSObject
> {
>        Controller *mc;
> }
>
> - (void) sayHi;
>
>
> @implementation BackgroundObj
>
> - (void) sayHi
> {
>        [mc showText:@"Hi"];
> }
> @end
>
> As you can see, the code is hard coded to use class Controller, can not be used with any other object, I'd like to add a delegate which will have a showText method, sayHi method will just call the delegate instead of hard coded Controller, any idea how to add delegates to this object? or, any tutorials for this? Thanks,
>
> Angelo
>
>
>
>
>      Yahoo! Mail具備一流的網上安全保護功能,請前往 http://hk.antispam.yahoo.com/ 了解更多相關資訊!
> _______________________________________________
>
> 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
>
_______________________________________________

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

References: 
 >adding a delegate to a class (From: Angelo Chen <email@hidden>)

  • Prev by Date: RE: adding a delegate to a class
  • Next by Date: Re: Spotlight sources w/o actual files?
  • Previous by thread: RE: adding a delegate to a class
  • Next by thread: Re: adding a delegate to a class
  • Index(es):
    • Date
    • Thread