영역이있는 imagePicker에서 이미지를 저장하려고합니다. 사진을 선택할 때 작동하지만 선택하지 않을 때는 작동하지 않습니다. 이미지를 선택하지 않으면 표준 이미지를 저장하려고했습니다. 는하지만 오류를 얻을 : 치명적인 오류 :치명적인 오류 : NSm을 영역에 저장할 때 선택 값의 래핑을 해제하는 동안 예기치 않게 nil이 발견되었습니다.
class Location: Object{
dynamic var name = ""
dynamic var locationDescription = ""
dynamic var latitude = 0.0
dynamic var longitude = 0.0
dynamic var created = NSDate()
dynamic var category: Category!
dynamic var imageData: NSData!
}
새 항목 추가 컨트롤러 : 옵션 값 위치를 풀기 동안 예기치 않게 전무을 발견
//Image Picker
@IBOutlet var imageView: UIImageView!
let imagePicker = UIImagePickerController()
var selectedImage = UIImage()
@IBAction func loadImage(_ sender: AnyObject) {
imagePicker.allowsEditing = true
imagePicker.sourceType = .photoLibrary
imagePicker.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)!
present(imagePicker, animated: true, completion: nil)
}
//MARK: - Delegates Image Picker
func imagePickerController(_ picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [String : Any])
{
selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage
imageView.image = selectedImage
// Dismiss the picker.
self.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true, completion: nil)
}
func addNewLocation() {
let realm = try! Realm()
//convert image to NSData
let standardData: NSData = UIImagePNGRepresentation(self.imageView.image!)! as NSData
let selctedImageData = NSData(data: UIImageJPEGRepresentation(selectedImage, 0.9)!)
let emptyData = NSData()
// let data = NSData(data: UIImageJPEGRepresentation(selectedImage, 0.9)!)
var data = NSData()
if selctedImageData == emptyData{
data = standardData
}
else{
data = selctedImageData
}
try! realm.write {
let newLocation = Location()
newLocation.name = self.nameTextField.text!
newLocation.category = self.selectedCategory
newLocation.locationDescription = self.descriptionTextField.text
newLocation.latitude = self.selectedAnnotation.coordinate.latitude
newLocation.longitude = self.selectedAnnotation.coordinate.longitude
newLocation.imageData = data
realm.add(newLocation)
self.locations = newLocation
}
}
편집 : 나는으로 분류 모델을 대체 쿼리에서 생성 된 문자열입니다. category
및 imageData
:
class Location: Object{
...
dynamic var category = ""
dynamic var imageData: NSData!
}
'imageView.image'하자 또는 이와 유사한 경우 :
– Larme나는 이미 이와 비슷한 것을 시도했다. 그것은 나를 위해 일하지 않았다. 좀 더 구체적인 아이디어가 있습니까? –