2017-05-05 3 views
0

내 앱에 일기장이 있는데 어떻게하면 사용자가 먹었던 칼로리가 축적되도록 내 라벨을 업데이트 할 수 있는지 궁금하다. 하루. 나는 아마도 다른 변수의 정수로서 cals의 상태를 저장할 수 있다고 생각하고있다. 그러나 그 이외에 나는 꽤 붙어있다. 응용 프로그램의를 heres 그림 :내 앱에서 사용자가 칼로리를 추가함에 따라 점차적으로 라벨을 늘리는 방법

Calories

이것은 내가 지금까지 내 기능에 ... 나는 클래스 수준 변수와 같은

VAR appJustLoaded = 사실 을 추가 생각하고 모두이다 앱의 상태를 저장 한 다음 사용자가 음식을 입력하면 앱을 끄기 위해 어떤 제안? 기본적으로 사용자가 칼로리가 많은 음식을 입력함에 따라 칼로리 라벨이 업데이트되기를 원합니다. 나는 그것의 아주 간단을 알고 있지만 메신저 하하

func didAddRow(name: String, calories: String, section: Int) { 

    var newCals = Int(calories) 


    calsforToday.text = calories 
+0

일시적으로 당신은의 ViewController의 멤버 변수에 저장할 수 있습니다,하지만 당신은 CoreData 더 영구적으로 저장하기 위해 같은 것을 조사 할 필요가있다. –

+0

라벨에 누적 칼로리가 합산되기를 원하십니까? 'totalCalories'라는 변수를 가질 수 있고'didAddRow' 함수에서 총 칼로리를 더할 수 있습니다. 그러면 간단하고 정수이므로 UserDefaults를 사용하여 저장할 수 있습니다. UserDefaults를 사용하여 데이터를 저장하는 방법에 대한 예제는이 부분을 참조하십시오. https://www.hackingwithswift.com/read/12/2/reading-and-writing-basics-userdefaults – naturaln0va

+0

@ naturaln0va 작품, 답변을 넣어주세요. +1 할 수 있습니다. 고맙습니다! – thelegendary3

답변

0

당신은 배열에 새 칼로리를 추가 할 수 있고 당신이 그들을 총 수 붙어. 당신이 CoreData의 데이터를 저장하는 경우가 총을 얻을 수있는 데이터를 가져 오는 경우

var caloriesArray = [1,2,3,4,5,6,7,8,9,10] 
func didAddRow(name: String, calories: String, section: Int) { 

    var newCals = Int(calories) 

    caloriesArray.append(newCals!) 

    calsforToday.text = caloriesArray.reduce(0, +) 

} 

당신은 같은 것을 사용합니다.

let result = try! context.fetch(request) as! [NSManagedObject]; 
let sum = result.reduce(0) { $0 + ($1.value(forKey: "Value") as? Int16 ?? 0) }