iOS9でhttps通信をする

 

iOS9より前のアプリをiOS9で利用するとhttps通信部でエラーになることがあります。

というか、自分の作ったアプリがそうなりました(汗

で、どうしたかというと・・・

info.plistに赤い枠の中にあるようにKeyとValueを加えて、SSLの通信を行わせるようにしました。

httpErrorScreenShot

 

本当はドメイン毎に設定する方法もあるので、そっちの方がいいのかもしれませんが

今回は面倒臭いのでサーバー全部を対象にして上記のように設定しちゃいました。

というのも、公開してるアプリではなく、テストで作ったアプリだからです。

公開するアプリの場合は、もうちょっと考えて設定した方がいいかもしれません、あしからず

 

 

[Swift2]UIImageViewの初期化メソッドを書く

実はUIImageViewに限らずですが、ヘヘヘっ

基本的にはObjective-Cで書いていたコードをSwiftに移植すればいいだけです

そのSwiftコードはというと、こんな感じ

 

import UIKit

class clsivN01Score: UIImageView {

//Storyboard/Interface Buidlerで作成する場合に呼ばれる

required init?(coder aDecoder: NSCoder) {

super.init(coder: aDecoder)

//ここから初期化コードを書く

}

 

//時前コードで作成する場合に呼ばれる

override init(frame: CGRect) {

super.init(frame: CGRectMake(0,0,0,0))

//ここから初期化コードを書く

}

}

[Swift]機種ごとにStoryboardを切り替えて使う

前準備として必要なStoryboardをプロジェクトに追加しておきます。

ここでは次のStoryboardを追加してます

iphone3.5inch.swift

iphone4.0inch.swift

iphone4.7inch.swift

iphone5.5inch.swift

ipad.swift

 

それからAppDelegate.swiftのdidFinishLaunchingWithOptionsにこんな感じで書き足します。(見づらくてごめんなさい)

 

import UIKit
import CoreData

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

var storyboardName: NSString!

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.

//機種判定
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {

let myBoundSize: CGSize = UIScreen.mainScreen().bounds.size

if myBoundSize.height == CGFloat(480.0) {
storyboardName = “iphone3.5inch
} else if myBoundSize.height == CGFloat(568.0) {
storyboardName = “iphone4.0inch
} else if myBoundSize.height == CGFloat(667.0) {
storyboardName = “iphone4.7inch
} else {
storyboardName = “iphone5.5inch
}

} else if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
storyboardName = “ipad
} else {
storyboardName = “Main”  //とりあえずデフォルト設定
}

// StoryBoardのインスタンス化
let storyboard: UIStoryboard! = UIStoryboard(name: storyboardName as String, bundle: nil)
// 画面の生成
let mainViewController = storyboard!.instantiateInitialViewController()
// ルートウィンドウに各Storyboardを紐付ける
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = mainViewController
self.window?.makeKeyAndVisible()

return true
}

その他もろもろ続く



}

これだけです。

やってみてねー