• 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: Pb implementing shared instance
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Pb implementing shared instance


  • Subject: Re: Pb implementing shared instance
  • From: Robbie Haertel <email@hidden>
  • Date: Sat, 20 Nov 2004 09:04:00 -0700

First of all, get rid of your "static" statement that is outside of
the class because you aren't using it in the code.  Second, since
sharedInstance is a class method, you'll need to either do [[aData
class] sharedInstance], or the easier [classA sharedInstance].
Lastly, I'm not sure your implementation of sharedInstance will do
what you want.  It creates a brand new instance of classA. So, if an
instance classA already exists and you want classB to get that
instance, it won't work because a new one will be created instead.
But if you don't have any instances of classA yet, and you want classB
to create a new instance (and then any other calls to the same class
method will used that same instance), then your code is fine.

Robbie


On Sat, 20 Nov 2004 15:18:37 +0100, Kubernan @ 10191 Technologies
<email@hidden> wrote:
> Hello,
>
> After reading the archive mailing list (and some web pages) i'm still
> not able
> to implement a shared instance (!).
> I have a compilation warning and i don't understand why :
>
>     compiling classB.m
>         " classA may not respond to '-sharedInstance' "
>
> What i need is to establish a reference of class A in class B.
> If you have an idea ...
>
> Here's my code :
>
>         file classA.h
> @interface classA : NSObject {
>
>         // other...
> }
> +(classA *)sharedInstance;
>         // other ..
> @end
>
>         file classA.m
> #import classA.h
>
> @implementation classA
> static classA *_sharedInstance = nil;
> +(classA *)sharedInstance
> {
>         static classA *_sharedInstance = nil;
>         if (_sharedInstance == nil)
>                 _sharedInstance = [[self alloc) init];
>         return _sharedInstance;
> }
> @end
>
> I use the shareInstance here :
>         file classB.h
> #import classA.h
> @interface classB : NSObject {
>         classA *classARef;
>         // other...
> }
> -(void)setAReferanceToClassA:(classA *)aData;
>
>         file classB.m
> #import "classB.h"
> @implementation classB
> -(void)setAReferanceToClassA:(classA *)aData
> {
>         classARef = [aData sharedInstance]; // <-- THE COMPIL WARNING (!?)
> }
> @end
>
> Thanks a lot,
> K.
>
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Pb implementing shared instance (From: "Kubernan @ 10191 Technologies" <email@hidden>)

  • Prev by Date: Re: WWDC DVD's ... playing on laptops.
  • Next by Date: Re: Closing nib file
  • Previous by thread: Pb implementing shared instance
  • Next by thread: WWDC DVD's ... playing on laptops.
  • Index(es):
    • Date
    • Thread