Objective c 从singleton经过的代表?
在这里的好人的帮助下,我能够写一篇单篇文章,但却无法让代表们从中受益 开始时,我有一个Objective c 从singleton经过的代表?,objective-c,Objective C,在这里的好人的帮助下,我能够写一篇单篇文章,但却无法让代表们从中受益 开始时,我有一个socketConnector课程,在家庭课程中,我以他为例,还从他那里得到了一个代表: socketInstance=[[SocketConnector alloc]init]; //in Home class socketInstance.delegate=self; 然后我需要为他创建一个singleton,并且仍然让他将代理送到主页 因此,我创建了一个单例类名:share
socketConnector
课程,在家庭
课程中,我以他为例,还从他那里得到了一个代表:
socketInstance=[[SocketConnector alloc]init]; //in Home class
socketInstance.delegate=self;
然后我需要为他创建一个singleton,并且仍然让他将代理送到主页
因此,我创建了一个单例类名: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;
}
正如您所见,我在这里设置了一次套接字类,而不是从主页使用它
类:
[sharedConnector defaultConnector].connector.delegate=self; //setting delegates to home!
(连接器在单例上有一个属性)
这确实有效,但我再也不能让代表们回家了。(所有代理函数仍在主类中,因为它们在开始时的位置)您直接访问
连接
,这与自连接
(使用合成方法)不同
因此,改变:
connector=[[SocketConnector alloc]init];
到
对于为什么要从Singleton调用delegate方法,有一个很好的解释。我想使用Singleton将委托获取到Home类,正如我所展示的,我试图将连接器实例的委托从Singleton添加到Home类。如果是Singleton,当您使用以下代码时,init方法不是invoke:[sharedConnector defaultConnector].connector.delegate=self;您何时调用singleton类的init方法?@junkor它被调用。[sharedConnector defaultConnector]调用sharedConnector上的init方法,而sharedConnector反过来调用连接器对象的init方法它会执行调用@giorashcohhh Great@Rant的委托吗?你在哪里?有什么见解吗?
self.connector=[[SocketConnector alloc]init];