iOS-在静态单例类中保留对主UIViewController的引用

iOS-在静态单例类中保留对主UIViewController的引用,ios,memory-management,automatic-ref-counting,Ios,Memory Management,Automatic Ref Counting,我有一个静态单例类,用于访问主UIViewController(由appdelegate创建),并通过它访问所有子UIViewController 我是这样申报的 @interface mySingleton : NSObject { ViewController* m_viewController; } @property (nonatomic,assign) ViewController* m_viewController 在.m文件中,我得到以下错误: @synthesize m

我有一个静态单例类,用于访问主UIViewController(由appdelegate创建),并通过它访问所有子UIViewController

我是这样申报的

@interface mySingleton : NSObject
{
    ViewController* m_viewController;
}
@property (nonatomic,assign) ViewController* m_viewController
在.m文件中,我得到以下错误:

@synthesize m_viewController; // ERROR: Existing ivar "m_viewController" for unsafe_unretained property "m_viewController" must be __unsafe_unretained.
但是,我通过将uu safety u unretained放入声明中来解决这个问题,正如错误所说。。
在m_viewController上保留一个_不安全_未维护的属性是否有任何问题?它代表应用程序的主菜单,永远不应取消分配。因此,由于AppDelegate稍后将其释放,因此它作为一个悬空指针应该永远不会成为问题,对吗?

如果您不希望m_viewController被释放,为什么不使用
strong
而不是
assign

另外,由于分配主视图控制器的通常是应用程序委托,而且应用程序委托可以通过UIApplication singleton访问,为什么不将对主视图控制器的引用保留在那里,而不是创建一个单独的类来实现这一点呢