2017-09-21 10 views
-1

오류가 발생하면 경고를 표시하는 데 문제가 있습니다.오류 표시를위한 모범 사례 경고

내 아이디어 : 완료 블록을 사용하여 백엔드에서 데이터를 다운로드 할 때마다 오류가 발생하면 경고 메시지를 표시합니다.

query?.findObjectsInBackground(block: { (objects, error) -> Void in 
     if error != nil { 
      createAlert(error) 
      return 

     } else if let objects = objects { 
} 

나는 동시에 ViewController에 하나 이상의 전화를 받았습니다 때문에, 자신이, 예를 들어 말을 동시에 제시 2 개 이상 또는 3 경고를 가지고 찾을 발생할 수 있습니다 "No Connection to the Internet". 경고음이 계속 울리며 UI 번으로 고통 스럽습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

내 솔루션 아이디어는 모든 것을 싱글 톤 패턴으로 만들고 다른 다른 경고가 현재 표시되지 않도록하는 것입니다.

더 좋은 방법이 있습니까?

+0

'createAlert'를 보여주세요. – matt

답변

1

대신 싱글 톤 패턴을 사용하여, 당신은 경고를 만들기위한 클래스에서 옵션 재산 (var noConnectivityAlert) 현재 책임을 가지고 선호 할 수도 있습니다.
createAlert() 메서드 대신 informUserAboutConnectivity() 메서드가 있어야합니다.

인터넷 연결이 다시 돌아와 다시 사라질 때 App Store의 일부 응용 프로그램은 경고를 다시 표시합니다. 그런 경우 인터넷 연결이 다시 돌아 오면 noConnectivityAlert = nil을 직접 설정할 수 있으므로 연결이 끊어지면 문제가 잘 처리됩니다 (새 경고가 생성되어 표시됨).

그런데 iOS SDK에서는 싱글 톤이 자주 사용되지 않습니다. 주로 클래스의 가장 일반적인 사용 사례 (예 : UserDefaults) 또는 공유 관리자/제공자 (물론)를 제공하는 데 사용됩니다.

+0

'연결 실패'보다 많은 오류가 있기 때문에 -이 기능을 사용할 수 없습니까? – JVS

+0

<= 4 가지 종류의 경고가있는 경우 속성 (각 오류 범주마다 하나씩)을 사용할 수 있습니다. 동시에 표시 할 경고 유형이 많이있는 경우 ** 오류 메시지 2 개를 그룹화 할 수 있습니다 (동시에 2 가지 유형의 오류가 발생하면 "연결 및 데이터베이스 오류"표시). 또한 디자인 측면에서 경고와 관련하여 [Apple의 추천] (https://developer.apple.com/ios/human-interface-guidelines/views/alerts/)을 참조하십시오. 가이드 라인은 다음과 같이 명시합니다 : *** 경고 최소화 ** [...] 각 경고가 중요한 정보와 유용한 선택을 제공하는지 확인하십시오 *. – JMM

+0

요점은 중단을 최소화하고 사용자가 유창하게 만드는 것입니다. 그런 점에서 아마 대략의 경고 유형 수를 질문하고 자세한 내용을 제공해야합니다 (경고가 동시에 또는 몇 초 간격으로 트리거 될 수 있습니다 ...). 귀하의 질문은 사용자 경험 및 디자인 측면에서도보아야합니다. – JMM