سؤال

لدي 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، بحيث تعرض القطعة التالية بدلاً من القطعة الحالية.

احسب مثيلات المؤقت الخاص بك - قم بتسجيل المؤقت في رد اتصال المؤقت وقارن النتائج - ربما تقوم بتشغيل أكثر من واحد.

نصائح أخرى

وتخميني هو أن لديك اثنين من إجراءات مختلفة تدعو هذه الطريقة، عندما كنت تعتقد أن يكون هناك واحد. كنت وضعت نقطة فاصل في هناك، ومعرفة ما اذا كان يتوقف حيث كنت أعتقد أنه ينبغي.

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