كيفية الحصول على فئة فرعية NSFormatter للعمل مع مفتاح NSTABLECOLUMP SORE ومحدد؟

StackOverflow https://stackoverflow.com/questions/2686455

سؤال

الإعداد الخاص بي:

  • لديّ قاعدة بيانات 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 واتصل مقارنة: عليها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top