سؤال

افترض أن لدي بعد البيانات في لعبتي. لقد طورت لعبة في Cocos2D.

Name    Score
Sagar   10000
Amit     2000
Vishal     90

يتم تخزين البيانات أعلاه في ملف Plist.

بخصي لديه مجموعة كجذر.

ضمن أن هناك 10 قاموس.

يحتوي كل قاموس على قيمتين:

  • قيم السلسلة - الاسم
  • قيمة الرقم - النتيجة

عندما أستخدم

NSMutableArray *x=[[NSMutableArray alloc] initWithContentsOfFile:@"Sagar.plist"];

أريد أن فرز صفيف قابل للتغيير هذه النتيجة.

هل هو ممكن؟

هل كانت مفيدة؟

المحلول

استخدام واصف فرز:

NSSortDescriptor * sortByScore = [[[NSSortDescriptor alloc] initWithKey:@"Score" ascending:NO] autorelease];
NSArray * descriptors = [NSArray arrayWithObject:sortByScore];
NSArray * sorted = [x sortedArrayUsingDescriptors:descriptors];

نصائح أخرى

يرى [NSMutableArray sortUsingDescriptors:], [NSMutableArray sortUsingComparator:] وما إلى ذلك وهلم جرا. يوفر NSMutablerray عدة طرق للفرز. في هذه الحالة، كنت أستخدم طريقة واصف إذا كنت بحاجة إلى توافق قبل 10.5 وسيلة المقارنة لتطبيقات Snow Leopard.

أعتقد على iPhone، خياراتك

- (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context;

و

- (void)sortUsingSelector:(SEL)comparator;

هناك مجموعة من المعلومات اللائقة عليها هنا:http://www.cocoadev.com/index.pl؟ortusingselector.

تحرير: يصيح! رأى Cocos2D وفترض أنه كان سؤالا iPhone.

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