xcode7 で designables error で困ったけど解決した件

xcode6.x系で @IBDesignable をつけて作成したclassをxibで使用していたところが、xcode7にアップデートした後に何らかのアクションを起こした後、designables error になっていた

たぶん該当のxibを開くとview updateが走るのでそれだと思う
開いただけで無駄にanimationsタグが増えてるのとかたぶんそれ

で、この件、ググると下記にたどり着き、

IBDesignable Errors · Günay Mert Karadoğan

Window > Projects > Delete Derive Data で delete しちゃいなよyou!ってことだったのでその通り削除した

その後、

linker command failed with exit code 1 file not found xcode

みたいなエラーがでる
かなしい

ググる

ios - ld: file not found: linker command failed with exit code 1 (use -v to see invocation) - Stack Overflow

この辺みつかる

つまりこれ

Revisions to ld: file not found: linker command failed with exit code 1 (use -v to see invocation) - Stack Overflow

Targets -> XxxTests の Host Application がグレーアウトしてたので指定してあげると直った

xcode7+elcapitanにしたらAlamofireSwiftyJSONが動かない件

勢いでxcode7にしたついでにelcapitanにもしたら案の定うまく動かなくてですね

下記の部分、

github.com

こうなんじゃね?的な話

responseJSON = JSON(data: object!)
<||

Alamofireとかのverによっては変更しないでもうまく動くのかもしれない
まあ自分でwrapしてあげるのが一番よく分かる

xcode7になってAlamofire-SwiftyJSONがエラーになる件

一旦、これに書き換えてみたメモ。

    public func responseSwiftyJSON(queue: dispatch_queue_t? = nil, options: NSJSONReadingOptions = .AllowFragments, completionHandler: (NSURLRequest, NSHTTPURLResponse?, JSON, NSError?) -> Void) -> Self {
        return response(queue: queue) { (request, response, object, error) -> Void in
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
                {
                    var responseJSON: JSON
                    if error != nil || object == nil{
                        responseJSON = JSON.nullJSON
                    } else {
                        responseJSON = SwiftyJSON.JSON(object!)
                    }
                    dispatch_async(queue ?? dispatch_get_main_queue(), {
                        completionHandler(request!, response, responseJSON, error)
                    })
                })
            }
        }
    }

そもそも使わないという選択肢もありな気がしてきた今日このごろ。

iOSシミュレーターでネットワークをオフにしたい

Apple DeveloperならそれっぽいツールをDLできる

https://developer.apple.com/downloads/?q=Hardware%20IO%20Tools

なんか色々バージョンあって、僕はxcode6.4だったのですが、6.4用のがなかったので6.3のやつをDLしてみたところ、普通に使えました。

f:id:kamip:20150904184004p:plain

こうしてONにすると使える

Network Link Conditionerというらしい

名前を覚える自信がございません

UIImageViewにドロップシャドウをつけたときの角度

変更したかったのだけど、何いれればいいか謎だったけど参考になるサイトがあった。素敵。

ringsbell.blog117.fc2.com

imageView.layer.shadowOffset = CGSizeMake(w, h);

いうならばUIVIewか

AutolayoutしているUIVIewにグラデーションを指定する

qiita.com

はい。普通にぐぐると↑にたどり着くのですが、frameを使っているため普通に処理を書くとAutolayoutの制約の処理が終わっておらず、うまくグラデーションになりません。かなしい。

じゃあAutolayoutの制約の適用が完了した後にグラデーションの設定をすればいい、ってことで下記のようにしたら一応動きました。

override func drawRect(rect: CGRect) {
    super.drawRect(rect)
    let gradientLayer: CAGradientLayer = CAGradientLayer()
    gradientLayer.colors = [
        UIColor.clearColor().CGColor,
        UIColor.blackColor().CGColor
    ]
    gradientLayer.locations = nil
    gradientLayer.frame = itemImageInnserShadow.bounds
    targetView.layer.insertSublayer(gradientLayer, atIndex: 0)
}

drawRectの中だったらsuper.drawRect(rect)を呼び出す前でも後でも制約の適応は完了していたのでそこにグラデーションの設定のコードを記述しました。今回は親Viewの中にグラデーションで塗りつぶしたグラデviewをAutolayoutでサイズを指定して親view.addSubview(グラデview) をしたかった。

でもグラデーションにしたいUIViewのクラスを作ってそのdrawRect内に書くのがすっきり書けそう。その際は グラデview.contentMode = .Redraw しておくとよさそうなのでメモっておく。

gradientLayer.locationsに関しては Cocoaの日々: [iOS][Mac] Core Graphics - グラデーション が参考になった。

amazon.comでLogitech K750 mac 買った

HHK持ってるけどつい欲しくてお金ないのに買ってしまった。

個人的にHHKの辛い部分は十字キーがないこと。Fnおしながらとかめんどくさい。すべてのテキストをvimで動作できそうなソフトウェアもあるけどそうじゃないのよ感。

あとtypoが多かった事実。使いにくいと思っている訳ではないけど結構ある。MBA備え付けのキーボードを結構長く使ってたせいもあって浅いキーボードに慣れているみたい。

久々にフルキーボード買ったので大事に使いたい(壊れたら保証きかない)です。ちなみにLogicoolじゃない理由は英字配列じゃないことだけですはい。Logicoolさんはやく英字配列取り扱っってくださいまじで。

f:id:kamip:20150712173914j:plain

f:id:kamip:20150712173922j:plain