2017-11-30 8 views
-1

사용자가 특정보기 컨트롤러를 여는 횟수를 계산하려고합니다.정수 카운터 Swift를 추가하지 않음

  • INT 사용자가보기를 엽니 다 처음의 초기 값은 0
  • 그런 다음 나는 "수"에 +1을 추가 한 다음 사용자 기본 설정에서 해당 번호를 저장할 수 있습니다.
  • 다음 번에 같은보기 컨트롤러를 열면 사용자 기본값이 호출되어 현재 숫자가이보기 컨트롤러에 있었던 누적 횟수로 업데이트됩니다.
  • 사용자가보기 컨트롤러를 다섯 번 연 후에 광고를 표시합니다.

그러나 "int"선언을 사용하면 지속적으로 카운트에 추가 할 수 없습니다. 나는 0에서 시작해야하고 그 수는 결코 1 이상으로 올라가지 않아. 내가 시도한 코드가 여기에있다.

이 내 코드는 "카운트가"동일하지 않을 경우 5 다음 1을 추가하고 사용자의 기본값에 저장하는 것이 말하고있다 "INT"여기

var userOpenVC: Int = 0 

내 선언입니다.

override func viewDidLoad() 
{ 
    super.viewDidLoad() 

    UserDefaults.standard.integer(forKey: "count") 

    if (userOpenVC != 5) 
    { 
     userOpenCategory += 1 
     UserDefaults.standard.set(userOpenCategory, forKey: "count") 
    } 

} 

override func viewWillAppear(_ animated: Bool) { 

    print(userOpenCategory) 

    //THIS WORKS 
    if (userOpenCategory == 5) 
    { 
     adShow.open() 
    } 
} 

답변

1

그럼 실제로 UserDefaults에 저장 한 값을 사용하고있는 것이 아닙니다.

override func viewWillAppear(_ animated: Bool) { 
super.viewWillAppear(animated) 
userOpenVC = UserDefaults.standard.integer(forKey: "count") 
if userOpenVC != 5 { ... 
+1

나는 당신의 의도가 값을 뷰 컨트롤러는 부하 대 보여줍니다 때마다 증가하는 것입니다 생각, 그래서 당신은 viewDidAppear 방법을 제안 기능을 이동할 수 있습니다 :이 문제를 해결할 것입니다. – Norman

+0

@ 노르만 좋은 전화. 그에 따라 업데이트되었습니다. – creeperspeak

+0

고마워. 내가 어떻게 그것을 깨닫지 못했는지 모르는 간단한 수정. 감사합니다. – user3667192