Первый подход, который приходит мне в голову, - это поместить объект singleton в объект appDelegate как свойство.Таким образом, вы можете получить к нему доступ из любого места, используя
#import "myAppDelegate.h"
// ...
[[(myAppDelegate *)[UIApplication sharedApplication] delegate] SingletonObj]
Недостатком является то, что вы должны явно привести и импортировать заголовок вашего делегата, чтобы сообщить классу, с которым вы работаете, что SingletonObj на самом деле является свойствомделегат.И я думаю, что это немного пахнет кодом.
Второй подход заключается в создании легального синглтон-класса.Это, однако, требует больше работы.И я лично считаю, что одного класса Singleton более чем достаточно.
Я не программист, поэтому я был бы очень признателен за исправления моих рассуждений и мнения по этому вопросу.