Είμαι εργάζονται για ένα κώδικα που απαιτεί μου για να αποθηκεύσει 60 * 4 δυαδικές τιμές, οι τίτλοι για αυτές τις τιμές αποθηκεύονται σε μια plist. Θα χρειαστεί να χειραγωγήσουν τις δυαδικές τιμές κατά το χρόνο εκτέλεσης και δεν μπορούσε να βρει έναν τρόπο για να ενημερώσετε το αρχείο plist easily..also χρησιμοποιώντας SQLite βάση δεδομένων για την αποθήκευση των boolean τιμές γίνεται κουραστική για τόσο μεγάλο ποσό των δεδομένων ... Υπάρχει κάποιος απλός τρόπος μέσα από εκεί η οποία θα μπορεί να αποθηκεύσει και να ανακτήσει αυτές τις τιμές εύκολα, τόσο κατά το χρόνο εκτέλεσης και μετά την έναρξη της εφαρμογής;
Ο καλύτερος τρόπος για να αποθηκεύσετε μια μεγάλη ποικιλία από boolean μεταβλητές;
Δεν εννοώ να είναι αιρετικός, αλλά υπάρχει ένας απλός κανόνας για περιπτώσεις όπως αυτή: πρόωρη βελτιστοποίηση είναι η ρίζα όλων των κακών.
60 * 4 είναι μόνο 240 booleans. Ακόμα κι αν με κάποιο τρόπο καταφέρνουν να τις αποθηκεύσετε με το χειρότερο δυνατό τρόπο και να 1k ανά boolean, αυτό είναι ακόμα μόνο 240k. Εφ 'όσον αυτό είναι αποθήκη και όχι RAM, ποιος νοιάζεται; Γιατί να μην ξεκινήσει με τον απλούστερο δυνατό τρόπο και να το διορθώσουμε όταν κάτι έρχεται σε σας αργότερα; SQLite θα ήταν απολύτως εντάξει για αυτό.
Αν είστε κοντά στη ναυτιλία και έχουν εντοπίσει αυτό ως πρόβλημα, με όλα τα μέσα να αγνοήσει αυτή την απάντηση. :)
Ενώ πρόκειται να είναι πολύ πιο εύκολο στη χρήση NSArray ή NSMutableArray όπως αναφέρθηκε παραπάνω, θα μπορούσαμε να εξετάσουμε χρησιμοποιώντας το πρότυπο C ++ φορέα τάξη. AFAIK αυτό είναι πολύ διάστημα αποδοτική wrt. η κατανομή της μνήμης.
Μπορείτε να χρησιμοποιήσετε τη μέθοδο NSData της αποθήκευσης των boolean σειρά, αλλά θα μπορούσε επίσης να αφήσουμε το κακάο να το κάνει φυσικά:
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"];













