以下的文章可能不一定正确,如果大家發現了不正确的地方,還希望大家能夠指正,謝謝!!
在springboard下有一個函數,貌似可以點亮螢幕調用另外一個應用,不過沒有經過驗證,詳見網址 http://networkpx.googlecode.com/svn-history/r335/trunk/hk.kennytm.grip/src/GriPServer.m和http://iphonedevwiki.net/index.php/SpringBoard.app/MIG_subsystem
[SpringBoard applicationOpenURL:publicURLsOnly:]
@synthesize window=_window; 怎麼了解?
我們在xocde中建立一個向導工程(比如基于視圖的工程),經常會看到有下面的語句
// .h
#import <UIKit/UIKit.h>
@class HelloWorldMailViewController;
@interface HelloWorldMailAppDelegate : NSObject <UIApplicationDelegate> {
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet HelloWorldMailViewController *viewController;
@end
// .m
// ...
@implementation HelloWorldMailAppDelegate
@synthesize window=_window;
@synthesize viewController=_viewController;
// ...
@end
在 32-bit 時,如果類的 @interface 部分沒有進行 ivar 聲明,但有 @property 聲明,在類的 @implementation 部分有響應的 @synthesize,則會得到類似下面的編譯錯誤:
Synthesized property 'xX' must either be named the same as a compatible ivar or must explicitly name an ivar
在 64-bit時,運作時系統會自動給類添加 ivar,添加的 ivar 以一個下劃線"_"做字首。
上面聲明部分的 @synthesize window=_window; 意思是說,window 屬性為 _window 執行個體變量合成通路器方法。
其實也就相當于以下的代碼
// .h
#import <UIKit/UIKit.h>
@class HelloWorldMailViewController;
@interface HelloWorldMailAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
HelloWorldMailViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet HelloWorldMailViewController *viewController;
@end
// .m
// ...
@implementation HelloWorldMailAppDelegate
@synthesize window;
@synthesize viewController;
// ...
@end