Я надеюсь, что кто-то может мне помочь, я уже искал Stackoverflow и Google, но я не мог найти правильное решение. У меня очень простое приложение, которое снимает фотографию (используя стандартную камеру iOS через UIImagePickerController), затем я сохраняю ее в файловой системе с очень низким разрешением - let thumbNailData = UIImageJPEGRepresentation(image, 0.02)
после этого я показываю изображения в виде коллекции с использованием Core Data - Я сохраняю только имя файла в Core Data, а не изображение, изображение только в файловой системе. Итак, когда я запускаю приложение, он показывает мне использование памяти не более 15 МБ, а процесс - около 1-2%. Все работает нормально, но после добавления 6-7 фотографий я получаю странные ошибки как предупреждения памяти, потеряла связь с моим iPhone, и это на:Предупреждение о наличии памяти в приложении iOS 8 - но использование низкое
Communications error: <OS_xpc_error: <error: 0x198adfa80> { count = 1, contents =
"XPCErrorDescription" => <string: 0x198adfe78> { length = 22, contents = "Connection interrupted"
Итак, я действительно застрял, я думал, что я сделал это очень легким и то я получаю эти ошибки .... Я уже представил приложение для заметок в App Store, которое было гораздо более функциональным, чем этот, но этот работает очень стабильно ...
Любые идеи?
Вот некоторые из моего кода: // Здесь я загружаю имена изображений в массив для отображения в представлении коллекции
func loadColl() {
let appDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let context:NSManagedObjectContext = appDelegate.managedObjectContext!
let fetchRequest:NSFetchRequest = NSFetchRequest(entityName: "PictureNote")
var error:NSError?
var result = context.executeFetchRequest(fetchRequest, error: &error) as [PictureNote]
for res in result {
println(res.latitude)
println(res.longitude)
println(res.longDate)
println(res.month)
println(res.year)
println(res.text)
pictures.append(res.thumbnail)
}
}
// Здесь код для отображения в целях сбора
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let myImageCell:ImageCell = myCollectionView.dequeueReusableCellWithReuseIdentifier("imageCell", forIndexPath: indexPath) as ImageCell
myImageCell.imageCell.image = self.loadImageFromPath(fileInDocumentsDirectory(self.pictures[indexPath.row]))
return myImageCell
}
// Здесь код для загрузки изображения с диска
func loadImageFromPath(path: String) -> UIImage {
let image = UIImage(contentsOfFile: path)
if image == nil {
self.newAlert("Error loading your image, try again", title: "Notice")
}
return image!
}
// Вот моя экономия код
func saveNewEntry() {
var unique = NSUUID().UUIDString
var imageTitle = "Picture\(unique).jpg"
var image = self.pickedImageView.image
var path = fileInDocumentsDirectory(imageTitle)
var thumbImageTitle = "ThumbPicture\(unique).jpg"
var thumbPath = fileInDocumentsDirectory(thumbImageTitle)
if self.saveImage(image!, path: path) == true && self.saveThumbImage(image!, thumbPath: thumbPath) == true {
// Create the saving context
let context = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext!
let entityOne = NSEntityDescription.entityForName("PictureNote", inManagedObjectContext: context)
let thisTask = PictureNote(entity: entityOne!, insertIntoManagedObjectContext: context)
// Get all the values here
self.getMyLocation()
var theDate = NSDate()
thisTask.month = Date.toString(date: theDate, format: "MM")
thisTask.year = Date.toString(date: theDate, format: "yyyy")
thisTask.longDate = theDate
thisTask.longitude = getMyLocation()[1]
thisTask.latitude = getMyLocation()[0]
thisTask.text = self.noteTextView.text
thisTask.imageURL = imageTitle
thisTask.thumbnail = thumbImageTitle
thisTask.id = unique
// Saving to CoreData
if context.save(nil) {
self.newAlert("Saving your note was successful!", title: "Notice")
self.noteTextView.text = ""
} else {
self.newAlert("Error saving your note, try again", title: "Notice")
}
} else {
self.newAlert("Error saving your image, try again", title: "Notice")
}
self.pickedImageView.image = UIImage(named: "P1000342.jpg")
}
Я очень благодарен за каждое предложение .... если вам нужно больше кода, просто дайте мне знать ...
Это не предупреждение о памяти, это ядро Apple, которое вызывает эту проблему, эта проблема произошла некоторое время назад, возможно, вы можете попробовать обновить свой Xcode и SDK. – CarmeloS
поиск "XPCErrorDescription" для получения дополнительной информации. – CarmeloS
Я знаю это, но я также получаю предупреждение о памяти, которое я не понимаю, это в тексте ... –