私は、viewDidLoadとviewWillAppearの間を移動するときに無効になるプロパティを持っています。なぜそれが起こるのか分かりません。NSStringプロパティが無効な値に変更されるのはなぜですか?
私は自分のデータベースへのパスを取得するヘルパークラスを持っています。私はこのクラスをアプリケーションデリゲートに割り当てます。 RootViewControllerは、このようなappDelegateへの参照を取得します。appDelegate以上
//inside .h file
@interface RootViewController : UITableViewController
<UITableViewDelegate, UITableViewDataSource>{
NSArray *controllers;
myAppDelegate *appDelegate;
}
//inside .m file
@implementation RootViewController
@synthesize controllers;
- (void)viewDidLoad {
appDelegate = [[UIApplication sharedApplication] delegate];
self.controllers = appDelegate.topicControllers;
[super viewDidLoad];
}
Iマウスデータベースヘルパークラスとデータベース・パスを含むプロパティを見つける:
NSPathStore2 * appDelegate.databaseHeper.databasePath "/Users/userA/Library/Application Support/iPhone Simulator/User/Applications..."
databasepathには、NSStringの宣言されています。なぜNSPathStore2に変更されたのですか?
私がデバッガで続行すると、他の奇妙なことが起こります。 viewWillAppearに入ると、プロパティ値は「無効」になり、タイプはNSStringに戻ります。私はそこにUIButtonを見たことがあります。
なぜ無効になるのですか?私はもはや変数を使用することはできません。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated]; //changes before this line executes
}
私はviewDidLoadとviewWillAppearの間に何もしません。ここでdatabasepathには、以前のapplicationDidFinishLaunchingに発生しdatabaseHelperクラスに割り当てられている方法です。
- (NSString *) getDBPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:self.databaseName];
}
stringByAppendingPathComponent NSStringのを返します。 NSStorePath2を割り当てられた後、いつの間にかダウンロードするのはなぜですか?
私は今問題なく動作していますが、[databaseHelper getDBpath]を呼び出すだけです。私の目標は、いくつかのCPUサイクルを節約し、その価値を保存することです。したがって、databasePath。 databasePathが無効になる理由を教えてください。
なぜdownvotesですか?これは、たくさんのアップフォースを受け取る貧しい質問の数よりも良い質問です! –