从单身人士传递代表?

时间:2013-03-27 13:08:16

标签: objective-c

在这里好人的帮助下,我能够写一个单身人士但却无法从中获得代表。

一开始我有一个socketConnector课程,并且从Home课程中,我做了一个他的实例,并且还有一个代表来自他:

       socketInstance=[[SocketConnector alloc]init]; //in Home class
        socketInstance.delegate=self;

我需要为他创建一个单身人士,并且仍然让他的代表到Home

所以我创建了一个单例类名:sharedConnector并且在其中我有:

+(sharedConnector*)defaultConnector
{
    static  sharedConnector   *myConnector ;
    @synchronized(self)
    {
        if( myConnector==nil  )
            myConnector=[[sharedConnector alloc]init ];
        return myConnector;
    }   
}

    - (id)init
    {
        if (self = [super init])
        {
            connector=[[SocketConnector alloc]init]; //setting here the socketClass
        }
        return self;
    }

如你所见,我在这里设置套接字类一次,而不是从Home类中使用它:

    [sharedConnector defaultConnector].connector.delegate=self; //setting delegates to home!

(连接器在单例上有属性) 它确实有效,但我不再让代表回家了。 (所有代理函数仍然在Home类中,因为它们在开始时)

1 个答案:

答案 0 :(得分:0)

您正在直接访问connection,这与self.connection(使用合成方法)不同。

所以改变:

connector=[[SocketConnector alloc]init]; 

self.connector=[[SocketConnector alloc]init]; 

有一个很好的解释为什么here