2016-09-14 5 views
0

通知引数としてインターフェイスオブジェクトを渡したいと思います。通知オブジェクトとしてインターフェイスオブジェクトを渡します。

私は

@interface StudentDetails : NSObject 
{ 
NSMutableArray* studentList; 
int   grade; 
} 
@end 

ようなインターフェイスを持っていると私は以下のような通知引数としてStudentDetailsのオブジェクトを渡したいと思います:

StudentDetails* pInterfaceCommand1 = [[StudentDetails alloc] init]; 
// student list is initialize to 1,2 & grade is 10 
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:pInterfaceCommand1 forKey:@"aKey"]; 

    [[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"testNotification" object:nil userInfo:userInfo deliverImmediately:YES]; 

しかし、私は他のクラスで通知を受け取ることができないのです。 しかし、私は以下のような通知を掲載しています、私は親切に私が必要とされているどのような変更を知らせ1.

NSDictionary* userInfo = @{@"data": @1}; 
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"testNotification" object:nil userInfo:userInfo deliverImmediately:YES]; 

値を受け取ることができています。

+2

通知を受け取っていないか、またはペイロードを受信して​​いませんか。 – Avi

+0

HI。 1.以下のケースの通知を受け取りません。 StudentDetails * pInterfaceCommand1 = [[StudentDetails alloc] init]; NSDictionary * userInfo = [NSDictionary dictionaryWithObject:pInterfaceCommand1 forKey:@ "aKey"]; [[NSDistributedNotificationCenter defaultCenter] postNotificationName:@ "testNotification"オブジェクト:なしuserInfo:userInfo deliverImmediately:YES]; 2. の応答を受信します。NSDictionary * userInfo = @ {@ "data":@ 1}; 。 [[NSDistributedNotificationCenter defaultCenter] postNotificationName:@ "testNotification"オブジェクト:なしuserInfo:userInfo deliverImmediately:YES]; – Phillip

+0

'StudentDetails'はシリアル化できますか? – Willeke

答えて

0

コードではNSDistributedNotificationCenterが使用されていますが、これは珍しいことです。通知を別のプロセスに送信することは本当ですか?通知を受け取る必要があるオブジェクトが同じプログラム内にある場合、通常は代わりにNSNotificationCenterを使用します。

+0

HI。 返信いただきありがとうございます。 アプリケーションが別のプロセスに通知を送信しているため、NSDistributedNotificationCenterが必要です – Phillip

関連する問題