→ 구독을 공유하는 주체 : Observable
→ 여러 곳에서 subscribe를 사용한다면 동기화에 문제 발생
class ShareExample{
var start = 0
func getStart()->Int
{
start += 1
return start
}
}
let exp = ShareExample()
let numbers = Observable<Int>.create { observer in
let start = exp.getStart()
observer.onNext(start)
observer.onNext(start+1)
observer.onNext(start+2)
observer.onCompleted()
return Disposables.create()
}
numbers
.subscribe(
onNext:{
print($0)
}
,onCompleted: {print("COMPLETED")}
)
numbers
.subscribe(
onNext: { el in
print(el)
},
onCompleted: {
print("Completed")
}
)
/*
1
2
3
COMPLETED
2
3
4
Completed
*/
힙메모리를 Observable객체가 갱신하면서 값이 다르게 출력됨