sudo rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/*
DispatchQueue.main.async
DispatchQueue.main.asyncでjsonを参照する。
override func viewDidLoad() {
super.viewDidLoad()
let stringUrl = "http://hpscript.com/swift/index.php"
do {
guard let url = URL(string: stringUrl) else { return }
URLSession.shared.dataTask(with: url){(data, response, error) in
if error != nil {
print(error!.localizedDescription)
}
guard let data = data else { return }
let json = try! JSONDecoder().decode([JsonSample].self, from: data)
DispatchQueue.main.async {
self.label.text = json[0].name //←ここでjsonを参照する
}
}.resume()
} catch{
}
}
jsonはcodableを使う。
なるほど!行けるか???行ければandroidへ直ぐにGo
swift4 – mysqlを設計していく
どうしてもやりたい
表示したいこと
Category: Audio Player
Brand: AKG
Name:AKG K77 PERCEPT
Price: 40
condition: 30
Left: 300
Bit : 1
まず、mysqlのテーブルを作っていく
create table product( category varchar(255), brand varchar(255), name varchar(255), price int, condition varchar(255), timeleft int, bit int, );
データを入れる。
INSERT INTO `product` (`category`, `brand`, `name`, `price`, `con`, `tleft`, `bit`) VALUES ('Audio Player', 'AKG', 'AKG K77 PERCEPT', '40', 'new', '300', '1');
sessin.dataTaskにいよるget
override func viewDidLoad() {
super.viewDidLoad()
let stringUrl = "http://hpscript.com/swift/index.php"
let url = URL(string: stringUrl)
let request = URLRequest(url: url!)
let session = URLSession(configuration: URLSessionConfiguration.default, delegate: nil, delegateQueue: OperationQueue.main)
let task:URLSessionDataTask = session.dataTask(with: request, completionHandler: {(data, response, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async{
}
})
task.resume()
// Do any additional setup after loading the view, typically from a nib.
}
banner

最近programing時間が減りすぎてる。やばい。
SwiftyJSONをダウンロードしよう
JSONにはSwiftyJSONを使っている、と言うことでgithubからswiftyJSONをダウンロードします。

zipでdownloadして、SwiftyJSON-master -> Source のSwiftyJSON.swiftを抜き取ります。
Cannon EOS Kiss Digital X
一眼レフの話をしていたら、何故かCannon EOS Kiss Digital Xをいただきました。

少し試し撮りしましたが、630より面白いです。
表現の幅は広げたいですね。
JSONDecoderがうまく行かない
override func viewDidLoad() {
super.viewDidLoad()
let listUrl = "http://hpscript.com/swift/index.php"
do {
guard let url = URL(string: listUrl) else { return }
URLSession.shared.dataTask(with: url){(data, response, error) in
if error != nil {
print(error!.localizedDescription)
}
guard let data = data else { return }
let json = try? JSONDecoder().decode([JsonSample].self, from: data)
}.resume()
} catch{
}
self.label.text = json[0].name
// Do any additional setup after loading the view, typically from a nib.
}
なぜだ!!!!?

swift4でmysqlからfetchしたjsonを取得する
まず、mysqlからpdoでselectして、jsonにする。
$response = array();
$dsn = "mysql:dbname=app;host=";
$user = "";
$password = "";
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e){
print('connection failed:'.$e->getMessage());
}
$sql = "select * from swift";
$stmt = $dbh->query($sql);
$i = 0;
foreach($stmt as $value){
$response[$i]['name'] = $value['name'];
$response[$i]['member'] = $value['member'];
$i++;
}
echo json_encode($response);
echo "finish";
勿論ここまではOK

問題は、x-codeで取得して、どう表示するか。
Gradient Editorの保存方法
new押下で保存できる。

black & white
かっこよくなりました。

次はボタンを作りたいですね。
はい。

文字も入れたい。
支離滅裂になってきました。また明日やります。