ここの善良な人々の助けを借りて、シングルトンを書くことができましたが、そこからデリゲートを取得できませんでした。
最初にクラスが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 クラスにあります)