I found the answer to this question here: Store CLLocationCoordinate2D to NSUserDefaults. And the code is written in Objective C. I understand, for the most part, what is happening with the code in that link. However, it is difficult for me to translate the syntax over to Swift. And I think it would be helpful for others to have this translation as well.
Just to reiterate the error, it is: Cannot invoke 'setObject' with an argument list of type (CLLocationCoordinate2D, forKey: String!)
. And here is the syntax that is causing this problem:
let mapAnnotations = NSUserDefaults.standardUserDefaults()
let newCoordinate = self.mapView.convertPoint(touchPoint, toCoordinateFromView: self.mapView)
var title: String! = ""
self.mapAnnotations.setObject(newCoordinate, forKey: title) //the error is here
self.mapAnnotations.synchronize()