سؤال

لذا فأنا أعمل على لعبة iPhone بسيطة وأحاول إنشاء جدول محلي عالي النتائج.أريد إنشاء مصفوفة ودفع أعلى الدرجات إليها.أدناه هو الكود الذي لدي حتى الآن:

    CGFloat score;
    score=delegate.score;
    NSInteger currentindex=0;
    for (CGFloat *oldscore in highscores)
    {
        if (score>oldscore)
        {
            [highscores insertObject:score atIndex:currentindex]
            if ([highscores count]>10)
            {
                [highscores removeLastObject];  

            }

        }
        currentindex+=1;
    }

المشكلة هي أن النتائج العالية هي NSMutableArray، والتي يمكنها تخزين الكائنات فقط.إذن هذا هو سؤالي، ما هي أفضل طريقة لتخزين CGFloats في مصفوفة؟هل هناك نوع مختلف من المصفوفات التي تدعم CGFloats؟هل هي طريقة بسيطة لتحويل CGFloat إلى كائن؟

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

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

المحلول

يمكنك فقط إضافة كائنات إلى NSArray, ، لذلك إذا كنت تريد إضافة CGFloats إلى مصفوفة، يمكنك استخدامها NSNumber.

على سبيل المثال:

NSNumber * aNumber = [NSNumber numberWithFloat:aFloat];

ثم لاستعادته:

CGFloat aFloat = [aNumber floatValue];

نصائح أخرى

CGFloat أي.المصفوفات البدائية يمكن بناؤها هكذا...

CGFloat colors[] = { 1, 0, 0, 1 };

وبعد ذلك "يستخدم" بطريقة مشابهة لـ...

CGContextSetFillColor(context, colors);

أو (بشكل أكثر إيجازا، عن طريق الصب)...

CGContextSetFillColor(context, (CGFloat[]){ 1, 0, 0, 1 });

C صفائف إجمالي لي خارج...ولكن يمكن القيام بذلك باستخدام "© القياسي"!

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