class Test {
var arr = [false, true, true, false, true, false, false] {
willSet(new) {
print("before: (arr)")
}
didSet(old) {
print("now: (arr)")
self.arr.sort{ $0 == false && $1 == true }
// 값 갱신마다 false를 앞으로 전부 나오게 정렬
// 예:
// false, true, true, false, true, false, false
// false, false, false, false, true, true, true
print("sorted: (arr)")
}
}
}
let test = Test() // 생성
test.arr.append(true) // #1 새로운 값을 추가
print(test.arr) // #2 arr에 값 접근 <-- 질문 위치
위 코드처럼, 프로퍼티 옵저버의 didSet 메서드에 정렬 기능을 구현했습니다.
그리고 print(test.arr)로 그 프로퍼티 옵저버의 값을 참조하고 있습니다.
여기서 질문입니다.
- 만약 데이터가 커서 정렬 수행이 오래걸리게 된다면, didSet직후 참조하게 된다면 오류가 발생하지 않을까요?
- 프로퍼티 옵저버는 해당 didSet, willSet이 끝날까지 외부에서의 참조가 미루어지는 동기구조인가요?
-
이 게시글은 mi kim에 의해 3 years, 10 months 전에 수정됐습니다.
-
이 게시글은 mi kim에 의해 3 years, 10 months 전에 수정됐습니다.
-
이 게시글은 mi kim에 의해 3 years, 10 months 전에 수정됐습니다.
-
이 게시글은 mi kim에 의해 3 years, 10 months 전에 수정됐습니다.
-
이 게시글은 mi kim에 의해 3 years, 10 months 전에 수정됐습니다.