我一直使用@synthesize
以及在.h文件中聲明的類屬性。我遇到了一些蘋果文檔found here中的PhotoPicker示例,並發現了一個非常令人困惑的聲明。在他們的AppDelegate類(h文件),他們不創造任何實例變量,只是性質,是這樣的:在Apple文檔中發佈ivars並將屬性設置爲零
#import <UIKit/UIKit.h>
@interface AppDelegate : NSObject <UIApplicationDelegate>
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
而且在他們的Appdelegate.m文件,他們這樣寫:
#import "AppDelegate.h"
@interface AppDelegate()
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@end
@implementation AppDelegate;
現在,我沒有找到任何@synthesize
指令,或任何實例變量,但是如果我看dealloc
方法,他們釋放出一些「看不見」的高德(什麼???)
- (void)dealloc
{
[_navController release];
[_window release];
[super dealloc];
}
而在CL的viewController他們在viewDidUnload
中將屬性設置爲零,並在dealloc
方法中釋放(未創建的)「ivars」。
這是否與一些新的Xcode的事情?有人可以對此有所瞭解嗎?我正在檢查didReceiveMemoryWarning
上的邏輯,並且始終將屬性設置爲viewDidUnload
中的零,並釋放了dealloc
中的ivars,但我之前沒有看到過。
在此先感謝您的幫助
使用iOS(5或以上)sdk?我認爲xcode會爲我們自動執行此操作,並且此功能是在iOS 5中引入的。 – kidsid49
@synthesise行是使用XCode 4.5自動生成的屬性 – CarlJ
是的,示例使用的是iOS 5.0 SDK,但我們假設我想要定位iOS 4.3 ,即使我沒有申報伊娃,我是否也應該發佈伊娃? –