Ich habe die folgenden Delegatendateien. Mein AboutViewController in MainWindow.xib lädt die AboutViewController.xib und die AboutViewController Outlet ist damit verbunden. Außerdem wird navController von einer anderen ViewController.xib geladen. Die Ansicht von AboutViewController wird beim Start angezeigt und nach einer Sekunde entfernt. Daher lasse ich den View-Controller los, indem ich den ivar auf Null setze.eine Ansicht in App-Delegat entladen
Da der About-View-Controller automatisch von XCode geladen wird, mache ich etwas falsches (undichte Speicher usw.), indem ich ihn manuell auf Null setze? warum oder warum nicht?
Dank
- MyProjAppDelegate.h
#import <UIKit/UIKit.h>
@interface MyProjAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UIViewController *aboutViewController;
UINavigationController *navController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UIViewController *aboutViewController;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
@end
- MyProjAppDelegate.m
#import "MyProjAppDelegate.h"
#import "AboutViewController.h"
@implementation MyProjAppDelegate
@synthesize window;
@synthesize aboutViewController;
@synthesize navController;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:aboutViewController.view];
[window makeKeyAndVisible];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showMainView) userInfo:nil repeats:NO];
}
-(void)showMainView {
[aboutViewController.view removeFromSuperview];
self.aboutViewController = nil;
[window addSubview:navController.view];
}
- (void)dealloc {
[navController release];
[aboutViewController release];
[window release];
[super dealloc];
}
@end
ok, also wenn ich von der Speicherverwaltung Aspekt denke, bin ich nicht der Besitzer des AboutViewController, wie ich es selbst nicht so erstellen Ich sollte es nicht veröffentlichen, oder vielleicht bin ich der Besitzer, weil XCode * es für mich erstellt (an Stelle von mir) * damit ich es freigeben könnte, ist das richtig? – lockedscope
Ja, das stimmt. –