मैं एक कोड है जो मुझे आवश्यकता है 60 * 4 बूलियन मूल्यों स्टोर करने के लिए पर काम कर रहा हूँ, इन मूल्यों के लिए खिताब एक plist में संग्रहीत किया जा रहा है। मैं कार्यावधि में बूलियन मूल्यों में हेरफेर करने की आवश्यकता होती है और plist फ़ाइल easily..also बूलियन मूल्यों के भंडारण के लिए SQLite डेटाबेस का उपयोग कर डेटा की इतनी बड़ी राशि के लिए व्यस्त हो जाता है अद्यतन करने के लिए एक तरह से नहीं मिला ... वहाँ के माध्यम से किसी भी आसान तरीका है जो मैं स्टोर और दोनों रनटाइम पर और आवेदन प्रारंभ होने के बाद आसानी से इन मूल्यों को प्राप्त कर सकते हैं?
बूलियन चर की विस्तृत शृंखला को स्टोर करने के लिए सबसे अच्छा तरीका है?
मैं एक विधर्मी होने के लिए मतलब नहीं है, लेकिन वहाँ इस तरह के मामलों के लिए एक सरल नियम है: समय से पहले अनुकूलन सब बुराई की जड़ है।
60 * 4 केवल 240 बूलियन्स है। यहां तक कि अगर आप किसी भी तरह उन्हें सबसे खराब संभव तरीके से स्टोर और बूलियन प्रति 1k लेने के लिए प्रबंधन, कि अभी तक केवल 240k है। जब तक कि राम भंडारण के बजाय है, कौन परवाह करता है? क्यों सरल संभव तरीके के साथ शुरू करते हैं और जब कुछ बाद में आप की बात आती है यह ठीक नहीं? SQLite इस के लिए बिल्कुल ठीक होगी।
आप शिपिंग के करीब हैं और एक समस्या के रूप में इस की पहचान की है, तो हर तरह से इस जवाब पर ध्यान न दें। :)
इसकी ज्यादा NSArray या NSMutableArray का उपयोग करना आसान होने जा रहा जबकि ऊपर उल्लेख किया है, तब तक आप मानक सी ++ वेक्टर वर्ग का उपयोग कर देखो सकता है। AFAIK यह बहुत ही अंतरिक्ष कुशल wrt है। स्मृति के आवंटन।
आप बूलियन सरणी भंडारण की NSData विधि इस्तेमाल कर सकते हैं, लेकिन आप भी सिर्फ कोको यह स्वाभाविक रूप से करते हैं सकता है:
NSArray* arrayOfBools; // array of 240 NSNumbers, each made with [NSNumber numberWithBool:NO];
फिर
[[NSUserDefaults standardUserDefaults] setObject:arrayOfBools forKey:@"MyNameForThe240"];
उन्हें प्राप्त करें:
NSArray* savedBools = [[[NSUserDefaults standardUserDefaults] objectForKey:"MyNameForThe240"];
आप उन्हें एक परिवर्तनशील सरणी में चाहते हैं की संभावना होगी:
NSMutableArray* the240ThatCanBeEdited = [NSMutableArray arrayWithArray:savedBools];
तब पर छोड़ दिया, उन लोगों के साथ बाहर बचाने के
[[NSUserDefaults standardUserDefaults] setObject:the240ThatCanBeEdited forKey:@"MyNameForThe240"];













