كيفية الحصول على فئة فرعية NSFormatter للعمل مع مفتاح NSTABLECOLUMP SORE ومحدد؟
-
30-09-2019 - |
سؤال
الإعداد الخاص بي:
- لديّ قاعدة بيانات SQLite التي أقوم بها بملء nsmutablearray من كائنات nsdictionary هذا هو مصدر البيانات الخاص بي nstableView الخاص بي.
- أحد الأعمدة يحمل "الوقت" ، والوقت هو تعويم يحمل ثواني.
- أرغب في عرض القيم في هذا العمود على أنه دقائق: ثواني. على سبيل المثال ، ستكون بياناتي 123.4329387 أريد أن أعرض 2:03 وهو ليس لدي مشكلة في القيام به مع فئة فرعية من NSFormatter (أو nsnumberformatter) المطبق على NSTextfield في العمود.
- لقد قمت بإعداد فرز باستخدام سمات عمود الجدول في IB ، ولدي فقط مفتاح الفرز الذي تم تعيينه على "الوقت" وضبط المحدد على "المقارنة:" الذي يعمل بشكل جيد بدون التنسيق.
حاليًا هذا يعطيني شيئًا كهذا عندما أقوم بفرز (تنازلي)
1:37, 1:31, 0:10, 0:10, 0:09, 1:30, 1:30, 1:26, 0:09
والهراء المماثل ، يبدو أن شيئًا ما يحدث ولكنه بالتأكيد لم يتم فرزه.
كيف يمكنني الحصول على هذا النوع للنظر في البيانات الأساسية بدلاً من القيمة المنسقة؟ بالتناوب ، كيف يمكنني تحديد طريقة فرز مخصص وأين أضع الكود للطريقة المذكورة؟ لقد بحثت قليلاً ولم أجد أي شيء لمساعدتي في هذه المشكلة ، أي مساعدة في هذا موضع تقدير كبير.
المحلول
اتضح أنه عند فرزه ، كان يستخدم المقارنة: من فئة NSString ولكنه كان يستخدم البيانات الرقمية الأساسية. لست متأكدًا تمامًا من ما يجري كل شيء تحت الغطاء هنا ، لكنني تمكنت من إصلاح هذا من خلال إنشاء طريقة المقارنة الخاصة بي في فئة من NSString تسمى "TimeCompare". ثم في Builder Interface ، وضعت للتو "TimeCompare:" في حقل المحدد لعمود الجدول. هذا يجعلها تتصل بمقارنة العرف التي قمت بها فقط بتحويل الأوتار الممنوحة إلى nsnumbers واتصل مقارنة: عليها.