Подавление предупреждения mayNotRespond в приложении для iPhone - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть приложение с контроллером вкладок, которое имеет определенное количество вкладок. Каждый ViewController в TabController делится некоторой информацией, поэтому я решил переместить их в AppDelegate и синтезировать все в NSDictionary, чтобы я мог получить доступ к тем, кто использует

[[[UIApplication sharedApplication] delegate] sharedInformations];

Решение работает отлично, и я думаю, что оно довольно хорошее (я принимаю лучшие решения). Очевидно, что компилятор предупреждает меня о том, что [[UIApplication sharedApplication] делегат] может не отвечать на метод sharedInformations, потому что он не нашел метод в протоколах, но я знаю, что это будет.

Вопрос: как мне подавить это предупреждение?

1 Ответ

2 голосов
/ 06 апреля 2011

Вы можете разыграть его:

[(MyAppDelegate *)[[UIApplication sharedApplication] delegate] sharedInformations];

или чуть более аккуратно:

MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
… = appDelegate.sharedInformation;

Вы также можете инкапсулировать вашу общую информацию в классе Singleton и сделать что-то вроде

#import "MySharedInfo.h"

MySharedInfo *sharedInfo = [MySharedInfo sharedInfo];
// etc.
...