Skip to content

Instantly share code, notes, and snippets.

@imalberto
Last active August 29, 2015 14:02
Show Gist options
  • Save imalberto/dec285b2b00241c847a9 to your computer and use it in GitHub Desktop.
Save imalberto/dec285b2b00241c847a9 to your computer and use it in GitHub Desktop.
Swift Template
class MainViewController: UITableViewController, UITableViewControllerDelegate, UITableViewControllerDataSource {
// If using xib
override func awakeFromNib() {
super.awakeFromNib()
}
// If not using xib
func init(name: String) {
}
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.leftBarButtonItem = self.editButtonItem()
let addButton = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "addRecipe:")
self.navigationItem.rightBarButtonItem = addButton
}
// using Core Data
func insertNewData(sender: AnyObject) {
let context = self.fetchedResultsController.managedObjectContext
let entity = self.fetchedResultsController.fetchRequest.entity
let newManagedObject = NSEntityDescription.insertNewObjectForEntityForName(entity.name, inManagedObjectContext:context)
as NSManagedObject
newManagedObject.setValue(NSDate.date(), forKey: "modified")
var error: NSError? = nil
if !context.save(&error) {
abort()
}
}
override func prepareForSegue(segue: UIStoryBoardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
let indexPath = self.tableView.indexPathForSelectedRow()
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
(segue.destinationViewController as DetailViewController)detailItem = object
}
}
// #pragma mark UITableViewDataSource
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return self.fetchedResultsController.sections.count
}
// #pragma mark NSFechedResultsController
var fetchedResultsController: NSFetchedResulsController {
if _fetchedResultsController != nil {
return _fetchedResultsController
}
let fetchRequest = NSFechtRequest()
// ... blabal
return _fetchedResultsController
}
var _fetchedResultsController: NSFetchedResultController? = nil
var foundationArray: NSArray = [ "foo", "bar" ]
let swiftArray = foundationArray as AnyObject[]
if let downcastedSwiftArray = swiftArray as? String[] {
// deal with |downcastedSwiftArray|
}
// Or you could downcast directly from an NSArray
for aString: String! in foundationArray {
// aString is type of |String|
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment