मेरे पास एक ऐसी संपत्ति है जो अमान्य में बदलती है क्योंकि मैं viewDidLoad और viewWillAppear के बीच स्थानांतरित करता हूं। मुझे नहीं पता कि ऐसा क्यों होता है।एनएसएसटींग संपत्ति अवैध मूल्य में क्यों बदलती है?
मेरे पास एक सहायक वर्ग है जो मेरे डेटाबेस का मार्ग प्राप्त करता है। मैं इस वर्ग को ऐप प्रतिनिधि में आवंटित करता हूं। RootViewController इस तरह AppDelegate के लिए एक संदर्भ हो जाता है:
NSPathStore2 * appDelegate.databaseHeper.databasePath "/Users/userA/Library/Application Support/iPhone Simulator/User/Applications..."
DatabasePath एक NSString घोषित किया जाता है:
//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];
}
मैं AppDelegate पर माउस डेटाबेस सहायक वर्ग और संपत्ति डेटाबेस पथ युक्त खोजने के लिए। यह एनएसपीएथस्टोर 2 में क्यों बदल गया है?
जैसा कि मैं डीबगर में जारी रहता हूं, कुछ और अजीब बात होती है। एक बार जब मैं देखता हूं WillAppear, संपत्ति मान "अमान्य" हो जाता है और प्रकार एनएसएसटींग पर वापस आ जाता है। Althought मैंने वहाँ यूआईबटन भी देखा है।
यह अवैध क्यों बदलता है? अब मैं चर का उपयोग नहीं कर सकता।
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated]; //changes before this line executes
}
मैं viewDidLoad और viewWillAppear के बीच कुछ भी नहीं करता हूं। यहाँ कैसे DatabasePath databaseHelper वर्ग है, जो applicationDidFinishLaunching पर पहले होता है में निर्दिष्ट किया जाए:
- (NSString *) getDBPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:self.databaseName];
}
stringByAppendingPathComponent रिटर्न एक NSString। असाइनमेंट के बाद मुझे सड़क पर कभी-कभी NSStorePath2 क्यों मिलता है?
मेरे पास अब बिना किसी समस्या के काम कर रहा है लेकिन बस [डेटाबेसहेल्पर getDBpath] को कॉल कर रहा है। मेरा लक्ष्य कुछ सीपीयू चक्रों को बचाने और उस मूल्य को स्टोर करना है। इसलिए डेटाबेसपैथ। कोई सुझाव क्यों डेटाबेसपाथ अमान्य में बदलता है?
डाउनवॉट्स क्यों? यह बहुत अच्छे प्रश्नों की तुलना में एक बेहतर प्रश्न है जो बहुत सारे अपवॉट प्राप्त करता है! –