البرمجة

تحسين حفظ وعرض الصفوف في تطبيق UITableView بشكل دائم

في محاولتك لتخزين المتغير بشكل دائم بعد إغلاق التطبيق وعرضه، تستخدم UserDefaults لتحقيق ذلك. وفي الرمز الخاص بك، يبدو أنك تقوم بتخزين عدد الصفوف في مصفوفة النصوص listTable باسم المتغير total. ولكن هناك مشكلة في كيفية استخدامك لهذا المتغير.

أولاً وقبل كل شيء، يجب أن تعلم أن total يتم تحديثه فقط في دالة viewDidLoad()، وهي دالة تستدعى عند تحميل الصفحة. وعند إغلاق التطبيق وفتحه مرة أخرى، يتم تحميل الصفحة من جديد و total يتم تحديثه بناءً على listTable.count ولكن لا تقوم بتحديث قيمة total المخزنة في UserDefaults.

لحل هذه المشكلة، يجب عليك تحديث قيمة total المخزنة في UserDefaults في كل مرة تقوم فيها بتحديث total، وليس فقط في viewDidLoad().

هنا هو الرمز المعدل:

swift
import UIKit var listTable = [String]() var total = listTable.count class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var numberOfRows: UILabel! @IBOutlet weak var TypeToCreateRow: UITextField! @IBOutlet weak var AddRow: UIButton! override func viewDidLoad() { super.viewDidLoad() loadTotalFromUserDefaults() } func loadTotalFromUserDefaults() { total = NSUserDefaults.standardUserDefaults().integerForKey("rows") numberOfRows.text = "\(total)" print(total) } func saveTotalToUserDefaults() { NSUserDefaults.standardUserDefaults().setInteger(total, forKey: "rows") } @IBAction func RowAdd(sender: UIButton) { listTable.append(TypeToCreateRow.text!) TypeToCreateRow.text = " " total = listTable.count numberOfRows.text = "\(total)" saveTotalToUserDefaults() } }

هذا الرمز يقوم بتحديث قيمة total ويخزنها في UserDefaults في كل مرة يتم فيها إضافة صف جديد. بالتالي، عندما تعيد فتح التطبيق، سيتم قراءة قيمة total المحفوظة في UserDefaults وعرضها في numberOfRows.

المزيد من المعلومات

في سياق التطبيق الذي قمت بتطويره، يظهر أن لديك واجهة المستخدم تتضمن حقل نصي TypeToCreateRow لإدخال النصوص وزر AddRow لإضافة صفوف جديدة إلى listTable. كما أن لديك عرض لعدد الصفوف الحالية في numberOfRows وتخزين هذا العدد في المتغير total.

المشكلة الرئيسية التي واجهتك كانت في تحديث قيمة total وتخزينها بشكل صحيح في UserDefaults. باستخدام الرمز المعدل الذي قدمته، يتم الآن تحديث قيمة total بشكل صحيح عند إضافة صف جديد، وتخزينها في UserDefaults لضمان الاحتفاظ بها بعد إغلاق التطبيق.

يمكنك أيضًا أن تلاحظ أنني قمت بإضافة دوال إضافية loadTotalFromUserDefaults() و saveTotalToUserDefaults() لتحميل وحفظ قيمة total في UserDefaults بشكل منفصل. هذا يجعل الرمز أكثر تنظيمًا ويسهل فهمه. يمكنك أيضًا تكامل هذا التحديث في الأماكن الأخرى من التطبيق حسب الحاجة.

من خلال هذا الإجراء، يمكنك الآن تخزين العدد الحالي للصفوف بشكل دائم بعد إغلاق التطبيق واستعادته بشكل صحيح عند إعادة فتحه، مما يوفر تجربة مستخدم أفضل وأكثر دقة.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!