swift - 使用 Swift 执行 EXC_BAD_INSTRUCTION

标签 swift

我正在使用 Swift,但在运行我的项目时遇到了一个奇怪的问题。

我有两个类:homeViewControllerPhoto

这是主要代码:

homeViewController:

class homeViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UITextViewDelegate, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource{
// .... some code...
func publishPhoto(){

        var photo = Photo()

        // Establecemos el loading
        photoDesc.resignFirstResponder()
        let loading = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
        loading.mode = MBProgressHUDModeDeterminate
        loading.labelText = "Un segundo por favor...";

        var imageData = UIImageJPEGRepresentation(photoInfo["UIImagePickerControllerOriginalImage"] as UIImage, 100.0)

        photo.addPhoto()

        MBProgressHUD.hideAllHUDsForView(self.view, animated: true)

    }
// .... some code ....
}

照片

import Foundation
import UIKit

class Photo: UIViewController{

    func addPhoto(){

        var homeCtrl = homeViewController()

        homeCtrl.photoDesc.resignFirstResponder()

        var imageData = UIImageJPEGRepresentation(homeCtrl.photoInfo["UIImagePickerControllerOriginalImage"] as UIImage, 100.0)

        let manager = AFHTTPRequestOperationManager()
        manager.requestSerializer.setValue("608c6c08443c6d933576b90966b727358d0066b4", forHTTPHeaderField: "X-Auth-Token")
        var parameters = ["user":"admin","password":"123456", "image" : imageData]
        manager.POST( "http://misdemos.dev/simpleApi/prueba",
            parameters: parameters,
            success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in
                println("JSON: " + responseObject.description)            },
            failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in
                println("Error: " + error.localizedDescription)
            })

    }

}

我在这一行中收到错误 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0):

manager.requestSerializer.setValue("608c6c08443c6d933576b90966b727358d0066b4", forHTTPHeaderField: "X-Auth-Token")

如果我将 addPhoto() 代码直接放在 homeViewController.publishPhoto 中,它就可以工作...

这是我第一次使用 iOS,我不知道我做错了什么。

最佳答案

在设置 header 字段之前尝试创建requestSerializer和responseSerializer。

例如 JSON 序列化器:

manager.requestSerializer = AFJSONRequestSerializer()
manager.responseSerializer = AFJSONResponseSerializer()

另一种选择是创建如下请求:

let request: NSMutableURLRequest = NSMutableURLRequest(URL: "http://misdemos.dev/simpleApi/prueba")
request.setValue("608c6c08443c6d933576b90966b727358d0066b4", forHTTPHeaderField: "X-Auth-Token")    
let operation: AFHTTPRequestOperation = AFHTTPRequestOperation(request: request)     

// e.g. response is json
operation.responseSerializer = AFJSONResponseSerializer()
operation.setCompletionBlockWithSuccess(...)

operation.start()

关于swift - 使用 Swift 执行 EXC_BAD_INSTRUCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134901/

相关文章:

Xcode swift 错误 App Transport Security 已阻止明文 HTTP

swift - 如何在 Swift 中将 NSURL 转换为字符串

ios - dispatch_async() block 在 UITableViewDataSource 方法之前没有完成

ios - Swift Json 值不断上升为 "nil"

ios - 在 UITableViewCell 中重复一个 UILabel

Swift 数组到元组数组

ios - 在应用程序中获取当前使用的语言

swift - 如何使用 Swift 循环访问 UIViewController 中的 View 导出?

ios - 将 getDocument 与 Firestore 链接起来?

ios - 在 Swift 中如何在 View Controller 和其他对象之间共享数据?