我想做的事:在iPhone xcode應用程序中,是否可以聲明一個具有全局範圍的指針?
#include "MyClass.h" MyClass *obj = new MyClass();
我試圖在main.mm,裏面的main(),在我appDelegate.mm和內部應用中:didFinishLaunchingWithOptions。但似乎沒有一個工作。我不得不將指針傳遞給每個對象。這涉及到另一個接口,更多的方法調用和更多的#includes。
謝謝
我想做的事:在iPhone xcode應用程序中,是否可以聲明一個具有全局範圍的指針?
#include "MyClass.h" MyClass *obj = new MyClass();
我試圖在main.mm,裏面的main(),在我appDelegate.mm和內部應用中:didFinishLaunchingWithOptions。但似乎沒有一個工作。我不得不將指針傳遞給每個對象。這涉及到另一個接口,更多的方法調用和更多的#includes。
謝謝
是的,這是完全可能的。
只要記住要在翻譯單位中使用extern
關鍵字,您將使用全局變量。
例如,在你的main.m文件:
NSString* yourGlobalStr = [[NSString alloc] initWithString:@"Global!"];
而且,你要使用它,在other_file.m地說:
extern NSString* yourGlobalStr;
- (void) m
{
NSLog(yourGlobalStr);
}
你可以聲明它在你的應用程序委託,然後從任何地方訪問它:
MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSLog(appDelegate.myString);