2016-08-11 1 views
1

핵심 데이터를 사용하여 테이블 뷰 셀의 이미지를 업데이트 할 수 있지만, 갤러리가 엑스 코드를 사용하여 핵심 데이터를 사용하여 기각 도착하면 이미지가 저장되고 테이블 뷰 셀에 표시하기되지 않는 방법 7.3, ios9 및 신속한 2.2나는 이미지 선택기를 사용하여 로컬 장치 갤러리에서 이미지를 따기입니다

if isUpdate == true{ 
      print("object id \(self.store?.objectID)") 
      self.store?.sName = name.text 
      self.store?.sDescription = desc.text 
      //save.setTitle("my text here", forState: .Normal) 
      let img = UIImage(named: "image.jpeg") 
      let imgData = UIImageJPEGRepresentation(img!,1) 
      self.store?.sImage = imgData 
      do { 
       try appdelegate.managedObjectContext.save() 
       self.navigationController?.popViewControllerAnimated(true) 
      } catch let error as NSError { 
       print("Could not save \(error), \(error.userInfo)") 
      } 

     }else{ 
      //get the description of the entity 
      let storeDescription = NSEntityDescription.entityForName("Store",inManagedObjectContext: appdelegate.managedObjectContext) 

      //we create managed object to be inserted to core data 
      let store = EventsandnotesStore(entity : storeDescription!,insertIntoManagedObjectContext:appdelegate.managedObjectContext) 
      store.sName = name.text 
      store.sDescription = desc.text 
      // 
      let img = UIImage(named: "image.jpeg") 

      let imgData = UIImageJPEGRepresentation(img!,1) 

      store.sImage = imgData 
      do { 
       try appdelegate.managedObjectContext.save() 
       self.navigationController?.popViewControllerAnimated(true) 
      } catch let error as NSError { 
       print("Could not save \(error), \(error.userInfo)") 
      } 

      } 


    } 

답변

0

당신은 내가 모든 일을하고 CoreData 과정에 OK있어 있으리라 믿고있어 이름 및 설명 필드 또는 저장소 객체의 생성 문제를 언급하지 않았기 때문에 .

확인해야 할 것은 JPEG 변환 호출의 정수 값 1입니다. 그것은 Float이어야하므로 호출에서 1.0을 시도합니다. 그러나 Xcode에 걸리지 않았다는 것에 놀랐습니다. 그로 인해 문제가 발생할 수 있는지 여부는 확실하지 않습니다.

다른 문제는 내가 UIImageJPEGRepresentation 호출이 다른 이유로 실패 할 수 있다는 것입니다 (예 : UIImage로 CIImage를 직접 변환 할 때 발생 함). , CGImage를 통해 해낸다면 효과가있었습니다. 모든 것을 감안할 때 통화 결과를 확인해야합니다.

guard let thumbnailData = UIImageJPEGRepresentation(thumbnailUI, Set.shared.jpegQuality) else 
    { 
     logError(#file, line: #line, column: #column, function: #function, description: "JPG Conversion Error - thumbnail") 
     return nil 
    } 

을 그 당신이 선택 도구에서 얻고있는 이미지를 확인해야합니다 실패 인 경우 다음과 같이 나는 가드 문 및 사용자 정의 로거를 사용합니다.

당신이 사물의 데이터베이스 측면에 문제가있는 경우, 당신은 당신의 뷰 컨트롤러에있는 TableView 위임 기능 (controllerWillChangeContent 등)가 포함되어 있습니다. 이미지가있는 레코드가 변경되면 configureCell 메서드가 호출되도록 이러한 함수가 필요합니다.

이것들은 제가 처음부터 배우려 던 것들입니다.

+0

실수로 다른 이미지에 같은 이름을 지정했는데 logError를 사용하여 수정했습니다. –

+0

다행 이었기 때문에 기쁩니다. –

관련 문제