在这里好人的帮助下,我能够写一个单身人士但却无法从中获得代表。
一开始我有一个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类中,因为它们在开始时)
答案 0 :(得分:0)
您正在直接访问connection
,这与self.connection
(使用合成方法)不同。
所以改变:
connector=[[SocketConnector alloc]init];
到
self.connector=[[SocketConnector alloc]init];
有一个很好的解释为什么here