كيف يمكنني إنشاء مجموعة من CGFloats في الهدف ج؟
-
13-09-2020 - |
سؤال
لذا فأنا أعمل على لعبة 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
, ، لذلك إذا كنت تريد إضافة CGFloat
s إلى مصفوفة، يمكنك استخدامها 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
صفائف إجمالي لي خارج...ولكن يمكن القيام بذلك باستخدام "© القياسي"!