2015-06-30 4 views
0
// 
// ViewController.swift 
// TipCalculator 
// 
// Created by Mathias Bakken on 6/28/15. 
// Copyright (c) 2015 Mathias Bakken. All rights reserved. 
// 

У меня есть 6-8 экземпляров, где я получаю сообщение об ошибке, если у вас нет члена tipCalc. Я попытался сделать пустую переменную, но это только усугубило ситуацию.ViewController не имеет члена с именем tipCalc

import UIKit 

class ViewController: UIViewController { 
@IBOutlet var totalTextField : UITextField! 
@IBOutlet var servQualitySlider : UISlider! 
@IBOutlet var foodQualitySlider : UISlider! 
@IBOutlet var servQualityLabel : UILabel! 
@IBOutlet var foodQualityLabel : UILabel! 
@IBOutlet var resultsTextView : UITextView! 
@IBAction func calculateTapped(sender : AnyObject){ 
    tipCalc.total = Double((totalTextField.text as NSString).doubleValue) 
    let possibleTips = tipCalc.returnPossibleTips() 
    var results = "" 
    for (tipPct, tipValue) in possibleTips{ 
     results += "\(tipPct)%: \(tipValue)\n" 
    } 
resultsTextView.text = results 
} 
@IBAction func servQualityChanged(sender : AnyObject){ 
    tipCalc.servQuality = Double(servQualitySlider.value)/100.0 
    refreshUI() 
} 
@IBAction func foodQualityChanged(sender : AnyObject){ 
    tipCalc.foodQuality = Double(foodQualitySlider.value)/100.0 
    refreshUI() 
} 
@IBAction func viewTapped(sender : AnyObject){ 
    totalTextField.resignFirstResponder() 
} 
let tipCalc = TipCalculatorModel(total: 33.25, foodQuality: 0.06, servQuality: 0.06) 

func refreshUI(){ 
    totalTextField.text = String(format: "%0.2f", tipCalc.total) 
    foodQualitySlider.value = Float(tipCalc.foodQuality) * 100.0 
    servQualitySlider.value = Float(tipCalc.servQuality) * 100.0 
    foodQualityLabel.text = "Food Quality 1-10 (\(Int(foodQualitySlider.value))%)" 
    servQualityLabel.text = "Service Quality 1-10 (\(Int(servQualitySlider.value))%)" 
    resultsTextView.text = "" 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    refreshUI() 
} 


override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

} Я получаю кучу одинаковых сообщений об ошибках, говоря «ViewController не член с именем tipCalc»

Я также получаю ошибку «Использование неразрешенной TipCalculatorModel идентификатора»

Как исправить эту проблему? Спасибо!

+0

Вы используете переменную tipCalc, но определения этой переменной нет? Где вы определили эту переменную, и это экземпляр какого класса? – rshankar

+0

@rshankar Определяется вид чуть выше третьего func с конца. – zaph

+0

Хорошо, я пропустил это. Попробуйте сначала исправить «Использование неразрешенного идентификатора TipcalculatorModel». У вас есть этот класс в вашем проекте? Если это часть другого модуля, попробуйте импортировать этот класс. – rshankar

ответ

0
import Foundation 

class TipCalculatorModel{ 

var total: Double 
var foodQuality: Double 
var servQuality: Double 
var subtotal: Double{ 
    get{ 
     return total/(foodQuality + servQuality + 1) 
    } 
} 
init(total: Double, foodQuality: Double, servQuality: Double){ 
    self.total = total 
    self.foodQuality = foodQuality 
    self.servQuality = servQuality 
} 
func calcTipWithTipPct(foodQuality: Double, servQuality: Double)->Double{ 
    return subtotal * (foodQuality + servQuality) 
} 
func returnPossibleTips()->[Int:Double]{ 
    let possibleTipsInferred = [0.15, 0.18, 0.20] 
    let possibleTipsExplicit:[Double] = [0.15, 0.18, 0.20] 
    var retval = [Int:Double]() 
    for possibleTip in possibleTipsInferred{ 
     let intPct = Int(possibleTip*100) 
     retval[intPct] = calcTipWithTipPct(foodQuality, servQuality: servQuality) 
    } 
    return retval 
} 

}

Я решил проблему, просто вставив в другом модуле. Не очень. Но это работает. Спасибо.

Смежные вопросы