Vì đại biểu ứng dụng của bạn không bao giờ thực sự thay đổi, bạn có thể tạo bên ngoài mà bạn xác định trong mã ủy nhiệm ứng dụng, rất giống với ứng dụng bên ngoài dành cho Mac OS X Cocoa.
Vì vậy, xác định bên ngoài trong tiêu đề appdelegate của bạn (hay cái gì khác mà bạn cần phải có ở khắp mọi nơi):
extern AppDelegate* appDelegate;
Sau đó tạo ra nó và đặt nó trong tập tin thực thi của bạn:
AppDelegate* appDelegate = nil;
// later -- i can't recall the actual method name, but you get the idea
- (BOOL)applicationDidFinishLaunchingWithOptions:(NSDictionary*)options
{
appDelegate = self;
// do other stuff
return YES;
}
Sau đó, các lớp khác chỉ có thể truy cập vào:
#import "AppDelegate.h"
// later
- (void)doSomethingGreat
{
NSDictionary* mySettings = [appDelegate settings];
if([[mySettings objectForKey:@"stupidOptionSet"] boolValue]) {
// do something stupid
}
}
Nguồn
2010-11-10 03:51:24
nhập AppDelege của bạn vào tập tin pch của bạn. Bằng cách này, bạn không cần phải nhập vào tất cả các tệp và bạn có thể nhận macro này ở bất kỳ đâu trong dự án của mình. – Ans
Lưu ý rằng nếu bạn thấy mình gõ 'AppDelegate * d = [[UIApplication sharedApplication] delegate];' một lần nữa và một lần nữa, đó có thể là một mùi mã. Bạn có thực sự cần ứng dụng đại biểu cho các ứng dụng-delegate-ish điều, hoặc bạn đang sử dụng nó như là một bãi rác cho nhà nước toàn cầu? –