내 앱에 UITableview 컨트롤러, 뷰 컨트롤러가 있고 NSNotificationCenter를 사용하여 UITableview 컨트롤러의 NSDictionary를 내 ViewController로 전달하려고합니다.NSNotificationCenter, 메모리 주소를 인쇄합니다.
의 ViewController : 같은 메모리 결과를 그래서, 난 내 jQuery과 컨트롤러에 알림을 밀어 그때라고 내 ViewController.The 선택기에서 선택기를 사용하여 관찰자를 추가 할 수 있지만 나는 NSLog가 얻을 0x8a0bcc0을
NSDictionary 대신 NSString을 전달하려고했지만 문자열 결과가 아닌 메모리 결과가 다시 나타납니다.
내 코드:
:jQuery과 컨트롤러
NSString *[email protected]"This is a test string";
[[NSNotificationCenter defaultCenter] postNotificationName: @"Update" object: string];
의 ViewController 여기
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(incomingNotification:) name:@"Update" object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"Update" object:self];
그리고는 incomingNotification 선택 방법입니다
모든 알림은 ViewDidLoad 메서드에서 발생합니다. 감사합니다!
UPDATE
마지막으로, 나는 내 TableViewController에서 조금에게 inheretence을 변경, 데이터를 전달하는 NSNotificationCenter 및 사용 속성을 사용하여 종료합니다. Notifications가 작동하지 않는 이유는 알 수 없습니다. 귀하의 제안과 아이디어에 대해 모두 고맙습니다 :)
왜 옵저버를 추가 한 직후에 두 번째 알림을'ViewController'에 게시합니까? 그게 콘솔에서이 문자열을 얻은 이유입니다. 테스트 문자열이없는 이유는 무엇입니까? - 테이블 컨트롤러에 알림을 게시하기 전에 옵저버를 추가했는지 확인하십시오 (해당 순서를 보도록 중단 점을 설정하십시오). – medvedNick
ViewController에서 postNotification을 호출하여 자신이 직접 인쇄합니다. 목적. –
ViewController에서 두 번째 알림을 삭제하면 선택기 메서드가 호출되지 않습니다! 이제 중단 점을 설정하려고합니다! –