2017-12-26 5 views
0

GKLeaderboard에서 loadScores 요청을 시뮬레이트해야합니다. 이를 위해 내가 만든 확장 '된 최대 범위'인이 GET 전용 속성확장 프로그램에서 읽기 전용 속성을 설정하는 방법은 무엇입니까?

그래서 내가 무시할 수있는 방법 :

extension GKLeaderboard { 
    func testLoadScores(completion: @escaping ([GKScore]?, Error?) -> Void) { 
     ... 
     self.maxRange = 100 
    } 
} 

그러나이다는

속성에 할당 할 수 없습니다하는

말한다 이 속성? 재산의 설명을 링크 : here

+1

@RawandAhmedShaswar maxRange는 Apple에서 소유하고 있습니다. –

답변

2

나는 문제가 loadScores(completionHandler:)가 완료되면 maxRange 속성이 자동으로 설정됩니다라고 가정하고 당신은 당신의 자신의

maxRange

이 그것을 설정하려고해서는 안 loadScores (completionHandler :)에 대한 호출이 완료 될 때까지 속성이 유효하지 않습니다. 그 다음에는 쿼리에 적용한 필터가 주어지면 게임으로 돌아갈 수있는 총 항목 수가 포함됩니다.

난 당신이 (필터) 상위 N 점수

range

리더 요청이 초기화를 사용하여 초기화 된 경우 범위 속성이 무시됩니다를 얻을 수 range를 사용한다 가정 (playerIDs :) 방법 . 그렇지 않으면 range 속성을 사용하여 게임에 반환되는 점수를 필터링합니다. 예를 들어, [1,10]의 범위를 지정하면 검색이 완료된 후 게임에서 가장 좋은 점수를받습니다. 기본 범위는 [1,25]입니다. 모든 점수를 얻으려면 그 중 100 당신이 반복적으로 증가 범위와 점수를로드해야합니다 것보다 더있을 경우 : 최소 지수는 최대 길이는 100

또는 1.이다 [1,100], [101,200] ... [1101, 1200] ..와 같이 100 점 미만의 점수를 얻을 때까지 계속됩니다. 그러나 페이징을 구현하는 것이 더 좋은 아이디어입니다. 너무 많은 점수가있어 모두로드하는 데 너무 많은 시간이 걸리기 때문에 가능합니다.