2014-06-10 3 views
2

나는 스위프트와 놀고있어, 내 프로젝트를 실행하는 데 이상한 문제가있다.스위프트로 EXC_BAD_INSTRUCTION

두 클래스가 있습니다. 홈 뷰 컨트롤러사진입니다.

이 주요 코드 :

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-인증 토큰")

나는 addPhoto() 직접 작동 homeViewController.publishPhoto에 코드를 삽입하면 ...

이것은 iOS를 처음 사용 한 것이고 내가 뭘 잘못하고 있는지 알지 못합니다.

+3

. 어설 션 오류는 고의적으로 잘못된 CPU 명령을 발행하여 프로그램을 중지시킵니다. 제대로 설정되지 않았기 때문에 객체가 없으면 객체가 표시됩니다. –

+0

Beta 3에서 실행을 시도 할 수 있습니다.이 문제를 일으키는 경우에 대한 콘솔 메시지가 표시됩니다. 내 경우, 코코아 메서드는 검사 할 필요가없는 암시 적으로 래핑되지 않은 옵션 (반환 형식의 Type!)을 반환했지만 여전히 0 일 수 있습니다. –

답변

2

헤더 필드를 설정하기 전에 requestSerializer 및 responseSerializer를 만들어보십시오. 예를 JSON 시리얼 라이저에 대한

:

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

또 다른 옵션은 다음과 같이 요청을 생성하는 것입니다 : EXC_BAD_INSTRUCTION는 거의 항상 표준 라이브러리에서 어설 션 오류에서 발행 : 여담으로

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() 
관련 문제