Junior — Middle
RunLoop döngələrinin müxtəlif iş rejimləri və məqsədləri haqqında danışa bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-də RunLoop hadisələrin emalı dövrüdür və hadisə mənbələrini və zamanlayıcıları idarə edir. O, bir neçə rejimdə (modes) işləyir və bu rejimlər, hansı hadisələrin hazırda işlənəcəyini müəyyən edir.
RunLoop-un əsas rejimləri:
- Əsas Rejim (NSDefaultRunLoopMode) — RunLoop-un əsas rejimi, o, normal vəziyyətdə işləyir və standart hadisələri emal edir.
- UI İzləmə Rejimi (UITrackingRunLoopMode) — istifadəçi interfeys ilə qarşılıqlı əlaqədə olduqda, məsələn, UIScrollView ilə sürüşdürmə zamanı istifadə olunur. Bu rejimdə, RunLoop izləmə ilə əlaqəli hadisələri emal edir və axıcılığı təmin edir.
- Ümumi Rejimlər (NSRunLoopCommonModes) — bir neçə rejimi (məsələn, Əsas və UI İzləmə) birləşdirən və bu rejimlərdə qeydiyyata alınmış hadisələrin çox rejimdə emal olunmasını təmin edən toplusudur.
Rejimlərin məqsədi, müxtəlif növ hadisələrin emalını izolyasiya etməkdir; məsələn, sürüşdürmə zamanı digər hadisələrin emal olunmamasını təmin etmək, bu da interfeysin yavaşlamasının qarşısını alır.
Nümunə: əgər zamanlayıcının sürüşdürmə zamanı da işləməsini istəyirsinizsə, onu Ümumi Rejimlərə əlavə etməlisiniz:
RunLoop.current.add(timer, forMode: .common)
Bu şəkildə, RunLoop rejimləri, tətbiqin optimal işləməsini təmin etmək üçün prioritetləri və emal olunan hadisə növlərini idarə etməyə kömək edir.