UILabel يعرض الكائنات الفردية فقط في NSArray
سؤال
لدي int الذي يحدد objectAtIndex، والذي يعطيه للسلسلة، والذي يعرضه بعد ذلك في UILabel، ومع ذلك، عندما أقوم بتعديل المصفوفة (أضف كلمة إليها في هذه الحالة) عندما يكون لدي UILabel يمر عبر المصفوفة فإنه يعرض فقط تلك الفردية.لقد قمت بإنشاء NSLog واكتشفت أنه يمرر كل شيء إلى السلسلة، لكن التسمية لا تعرض كل شيء على حدة، فهي تفعل ذلك فقط في المرة الأولى، ثم أقوم بتعديل المصفوفة، وهذا أمر غريب فقط
يحرر:الرمز:
- (void) stuff {
NSArray *indivwords = [sentence componentsSeparatedByString:@" "];
count = [indivwords count]; //count=int
if (i < count) {
NSString *chunk = [indivwords objectAtIndex:i];
[word setText:chunk];
NSLog(chunk);
i++;
} else {
word.textColor = [UIColor greenColor];
[word setText:@"DONE"];
}
}
يتم التحكم في كل هذا بواسطة NSTimer، والذي يقوم بضبطه بناءً على قيمة شريط التمرير.كما تم ضبطي على 0 في IBAction
رمز اي بي اكشن:
word.textColor = [UIColor whiteColor];
[timer invalidate];
i = 0;
speedd = (1/speed.value)*60;
timer = [NSTimer scheduledTimerWithTimeInterval:(speedd) target:self selector:@selector(stuff) userInfo:nil repeats:YES];
يحرر:
أصلحته!ما فعلته هو الاتصال بهذا بعد أن وصلت إلى العد
-(void)stoptimer
{
[timer invalidate];
timer = [NSTimer scheduledTimerWithTimeInterval:(.01) target:self selector:@selector(empty) userInfo:nil repeats:YES];
}
الفارغ هو مجرد فراغ لا يحتوي على أي شيء، حسنًا، كل ما فعلته هو إضافة تعليق،
//don't look over here, nothing to see here, oh look at that
يمكن لأي شخص أن يغلق هذا إذا أراد
المحلول
قلت إن الفاصل الزمني لـ NSTimer الخاص بك يتم التحكم فيه بواسطة شريط التمرير.ربما تقوم ببدء مثيل مؤقت جديد في كل مرة تقوم فيها بتغيير قيمة شريط التمرير، لذلك بعد التغيير سيكون لديك اثنين تشغيل الموقتات.الأول يقوم بتحديث التسمية والزيادات i
.والثاني يأتي مباشرة بعد الأول ويجد i
زادت قيمة 's، بحيث تعرض القطعة التالية بدلاً من القطعة الحالية.
احسب مثيلات المؤقت الخاص بك - قم بتسجيل المؤقت في رد اتصال المؤقت وقارن النتائج - ربما تقوم بتشغيل أكثر من واحد.
نصائح أخرى
وتخميني هو أن لديك اثنين من إجراءات مختلفة تدعو هذه الطريقة، عندما كنت تعتقد أن يكون هناك واحد. كنت وضعت نقطة فاصل في هناك، ومعرفة ما اذا كان يتوقف حيث كنت أعتقد أنه ينبغي.