Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialTaylor Quinn
20,003 PointsHelp debugging exc_bad_acess
So i am building a two page tabbed app. I am using the Charts framework to put charts in my app. Both page have the same chart with different data in each. When I run the app the first page and chart display fine but when I try to run the second page and chart it crashes and I get an exc_bad_access error. here is my code
@IBOutlet weak var yourRankRetailLabel: UILabel!
@IBOutlet weak var barChartView2: BarChartView!
var employee: [String]!
var currentRank = ""
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
DataService.dataService.CURRENT_USER_REF.observeEventType(FEventType.Value, withBlock: { snapshot in //snap
let rank = snapshot.value.objectForKey("rankretail") as! String
self.yourRankRetailLabel.text = "You were ranked \(rank) in service sales last week!"
self.currentRank = rank
}, withCancelBlock: { error in
print(error.description)
})//snap
employee = ["1491", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
let unitsSold = [5.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]
setChart(employee, values: unitsSold)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func setChart(dataPoints: [String], values: [Double]) {
barChartView2.noDataText = "You need to provide data for the chart."
var dataEntries: [BarChartDataEntry] = []
for i in 0..<dataPoints.count {
let dataEntry = BarChartDataEntry(value: values[i], xIndex: i)
dataEntries.append(dataEntry)
}
let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Units Sold")
let chartData = BarChartData(xVals: employee, dataSet: chartDataSet)
barChartView2.data = chartData
2 Answers
Taylor Quinn
20,003 PointsThis is a screenshot of what happens. (https://www.dropbox.com/s/i9b4qm7sinqjgrw/Screen.jpg?dl=0)
Steven Deutsch
21,046 Pointsit looks like barChartView2 is not being instantiated before you access it
Taylor Quinn
20,003 PointsCould you please elborate on what that is and how to go about fixing it.
Steven Deutsch
21,046 PointsSteven Deutsch
21,046 PointsHey Taylor Quinn,
Can you post the top part of the debugger output?