0
votes

So I was building a table view largely based off this apple tutorial Create a Table View but ran in to a problem when running my app. The problem was that when I ran the application, I received the much dreaded SIGABRT error.

Note 1: I only get the SIGABRT error when loadlist() is in ViewDidLoad

So I added an exemption breakpoint and got this error:

objc[7603]: Class STGenericIntentDateRange is implemented in both /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/SiriTasks.framework/SiriTasks and /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/PhotosUI.framework/PhotosUI. One of the two will be used. Which one is undefined. objc[7603]: Class GKStateMachine is implemented in both /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/GameCenterFoundation.framework/GameCenterFoundation and /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/GameplayKit.framework/GameplayKit. One of the two will be used. Which one is undefined. (lldb)

For the record, my TableViewController looked like this:

import UIKit

class LevelTableViewController: UITableViewController {
var levelsArray = [Level]()

override func viewDidLoad() {
    super.viewDidLoad()

   //Load the data
    loadlist()
}

func loadlist(){
    let Level1:Level = Level(name: "Level1")!
    levelsArray += [Level1]
}

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

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return levelsArray.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cellid = "LevelTableViewCell"
    let cell = tableView.dequeueReusableCellWithIdentifier(cellid, forIndexPath: indexPath)  as! LevelTableViewCell

    // Fetches the appropriate meal for the data source layout.
    let Level = levelsArray[indexPath.row]

    cell.ListName.text = Level.name

    return cell
}


/*
// Override to support conditional editing of the table view.
override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    // Return false if you do not want the specified item to be editable.
    return true
}
*/

/*
// Override to support editing the table view.
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    if editingStyle == .Delete {
        // Delete the row from the data source
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
    } else if editingStyle == .Insert {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }    
}
*/

/*
// Override to support rearranging the table view.
override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {

}
*/

/*
// Override to support conditional rearranging of the table view.
override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    // Return NO if you do not want the item to be re-orderable.
    return true
}
*/

/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.
}
*/

}

And my TableViewCell like this:

import UIKit

class LevelTableViewCell: UITableViewCell {

//Declaration of properties

@IBOutlet weak var ListName: UILabel!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

} And my class definition like this:

import Foundation
import UIKit


class Level {
// MARK: Properties
var name: String

init?(name: String) {
    // Initialize stored properties.
    self.name = name

    if name.isEmpty {
        return nil
    }

   }

 }

Help would be greatly appreciated.

1
Check target memberships of the classes STGenericIntentDateRange and GKStateMachine.Fawad Masud
I haven't touched them, I don't know what that meansneedshelp

1 Answers

1
votes

Check if those classes are duplicated as they could be in both frameworks. If they are duplicated but barely different, you "might" try deleting one version and adding them again with a different name. Be aware this option might need several changes as these classes could be called from more points in the code. If the classes are identical, try finding them with Finder, make a copy, delete them from your project navigator and try again. If something goes terribly wrong, just add them again to your project and don't forget to check "Copy items"