Question-Boardに投稿できるアプリを作ろうと思っています。
テキストの投稿には成功したのでメモを書きます
ViewController.swift
import UIKit
class ViewController: UIViewController, UITextFieldDelegate, NSURLSessionTaskDelegate{
var json:NSData!
override func viewDidLoad() {
super.viewDidLoad()
// UITextFieldを作成する.
let myTextField: UITextField = UITextField(frame: CGRectMake(0,0,200,30))
// 表示する文字を代入する.
myTextField.text = ""
// Delegateを設定する.
myTextField.delegate = self
// 枠を表示する.
myTextField.borderStyle = UITextBorderStyle.RoundedRect
// UITextFieldの表示する位置を設定する.
myTextField.layer.position = CGPoint(x:self.view.bounds.width/2,y:100);
// Viewに追加する.
self.view.addSubview(myTextField)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
/*
UITextFieldが編集された直後に呼ばれる.
*/
func textFieldDidBeginEditing(textField: UITextField){
println("textFieldDidBeginEditing:" + textField.text)
}
/*
UITextFieldが編集終了する直前に呼ばれる.
*/
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
println("textFieldShouldEndEditing:" + textField.text)
// まずPOSTで送信したい情報をセット。
let str = "text=\(textField.text)"
let strData = str.dataUsingEncoding(NSUTF8StringEncoding)
let url: NSURL = NSURL(string: "送信したいサイトのPOST URL")!
var request = NSMutableURLRequest(URL: url)
// この下二行を見つけるのに、少々てこずりました。
request.HTTPMethod = "POST"
request.HTTPBody = strData
var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)
var dic = NSJSONSerialization.JSONObjectWithData(data!, options:nil, error: nil) as NSDictionary
return true
}
/*
改行ボタンが押された際に呼ばれる.
*/
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}
ただし以下のようなエラーが出る。実機でない場合に出るらしいが,詳しいことはわからない。
fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)
<エラーがなくなったので追加します 3/17>
var dic = NSJSONSerialization.JSONObjectWithData(data!, options:nil, error: nil) as NSDictionary
を以下に変更すればエラーがなくなった
var dic = NSJSONSerialization.JSONObjectWithData(data!, options:nil, error: nil) as? NSDictionary
swiftはvarの使い方を学べば理由もわかりそう
<>
次は画像投稿の方法を探る。
参考
テキスト投稿
http://qiita.com/mochizukikotaro/items/e2da2d3186ec24e291a6
テキストフィールド生成
https://sites.google.com/a/gclue.jp/swift-docs/ni-yinki100-ios/uikit/004-uitextviewde-wen-ziwo-ru-li