Разбор: JSON-текст не начинался с массива или объекта и опция, позволяющая не устанавливать фрагменты

ios parse-platform

634 просмотра

1 ответ

У меня есть система, использующая Parse, которая имеет веб-интерфейс и клиент для iOS и Android. Все работало нормально, пока мы не перешли на HTTPS

Тем не менее, все отлично работает на Android и в Интернете (Javascript), однако я получаю следующее сообщение при попытке загрузить файл в iOS

Текст JSON не начинался с массива или объекта и опции, позволяющей не устанавливать фрагменты.

Код, который вызывает это. Сбой только в том случае, если я добавляю изображение в загрузку (Search.sharedInstance.imageURL! = Nil)

// Send to Parse             
if PFUser.currentUser() != nil {
    sentReport["user"] = Search.sharedInstance.currentUser
}

sentReport["reportType"] = userSelectedReportType

Search.sharedInstance.reportText = reportNotesTextView.text
sentReport["reportDescription"] = Search.sharedInstance.reportText

if (reportLatCoords != nil && reportLngCoords != nil) {
    sentReport["reportPosition"] = PFGeoPoint(latitude: reportLatCoords!, longitude: reportLngCoords!)
}

sentReport["search"] = Search.sharedInstance.selectedPerson

let reportImageFile = PFFile(name: "\(Search.sharedInstance.timeStamp).jpg", data: reportImage!)

if reportPhoto.image != UIImage(named: "selectPhoto") {
    if Search.sharedInstance.imageURL != nil {
        sentReport["reportPicture"] = reportImageFile
        sentReport.setObject(Search.sharedInstance.imageURL!.absoluteString, forKey: "reportImageUri")
    }
}

sentReport["loggedAt"] = date

// Handle success & failure
sentReport.saveInBackgroundWithBlock { (success, error) -> Void in

    if success == true {
        self.dismissViewControllerAnimated(true, completion: { () -> Void in })
    } else {

        if Reachability.isConnectedToNetwork() == false {
            sentReport.pinInBackgroundWithBlock { (success, error) -> Void in
                if success {
                    Search.sharedInstance.syncReportItemsWithServer()
                }
            }
            self.displayAlert("No internet connection available", message: "But don't worry, your report will be sent automatically when you regain an internet connection.")
        }
    }
}    

Проблема, которую я испытываю, заключается в том, что я читаю / разбираю исправления, но я не могу контролировать загрузку изображений. Тоже нормально работает в Android SDK?

Мой адрес сервера: https://lowlands.lab-cloud.net/parse

Обновить

ReportImage

 var reportImage = UIImageJPEGRepresentation(self.reportPhoto.image!,
    1.0)

if reportImage!.length < 10000000 {
    reportImage = UIImageJPEGRepresentation(self.reportPhoto.image!, 0.75)
} else if (reportImage!.length >= 10000000) && (reportImage!.length <= 20000000) {
    reportImage = UIImageJPEGRepresentation(self.reportPhoto.image!, 0.50)
} else if (reportImage!.length > 20000000) {
    reportImage = UIImageJPEGRepresentation(self.reportPhoto.image!, 0.25)
}
Автор: Burf2000 Источник Размещён: 08.11.2019 11:05

Ответы (1)


2 плюса

Проблема будет с вашей reportImageпеременной, к сожалению, вы не поделились ею с нами ... именно так вы храните UIImages в PFFIle

let imageData = UIImagePNGRepresentation(image)
let imageFile = PFFile(name:"image.png", data:imageData)

var userPhoto = PFObject(className:"UserPhoto")
userPhoto["imageName"] = "My trip to Hawaii!"
userPhoto["imageFile"] = imageFile
userPhoto.saveInBackground()
Автор: Mazel Tov Размещён: 20.08.2016 02:57
Вопросы из категории :
32x32