サイズはどちらも同じで座標系が異なる bounds : 座標系が自分のビュー基準 frame : 座標系が親ビュー基準 あとで読む frameとboundsの理解をちょっとだけ深める - Qiita [iPhone] UIView の frame と bounds の違い | Sun Limited Mt.
監視対象のプロパティに dynamic 修飾子をつける Observer は NSObject を継承している必要がある dynamic var fbNativeAd:FBNativeAd? addObserver(self, forKeyPath: "fbNativeAd", options: [.New, .Old], context: nil) deinit { removeObserver(self, f…
swift はデフォルトで deep copyになる。 また、引数で受け取ったオブジェクトはletになってて直接加工できない。 そのため、ディープコピーを作ってそれを編集する必要がある。 // swift はデフォルトで deep copyになる let ar = [1,2,3,4] var ar2 = ar ar2.in…
0から100の範囲で10で割り切れる値を得る print( (Array<Int>)(0...100).filter({$0 % 10 == 0}) ) // => [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]</int>
// ジェネリクス関数 func swapAnyObject<T>(a:T, b:T){ print( a.dynamicType, b.dynamicType) } // ジェネリクス関数その2 // http://qiita.com/mini_house/items/73cefa9612d5c7680d7e より func myRepeat<ItemType>(item: ItemType, times: Int) -> [ItemType]{ var r</itemtype></t>…
こちらのスライドを参考にしてRuby で設定系のDSLを書いてみました。 sixeight.hatenablog.com ところどころ、コメントを書いて理解しながら書いてみました。 # 設定系DSL class Awesome class Config attr_accessor :hoge, :fuga # (a) attr_accessor :method …
シングルトンクラスの定義 遅延実行で生成するパターン import Foundation class NetworkErrorAlertControllerManager : NSObject { static var sharedManager: NetworkErrorAlertControllerManager = { return NetworkErrorAlertControllerManager() }() ov…
ページネーションがあるAPIを作るとき毎回書くのが大変なので共通化した。 base_controller.rb に書いておくと、他のコントローラから使い回せて便利。 def params_page params[:page].try(:to_i).presence || 1 end def params_site_ids params["site_ids"].tr…
class CatList include Enumerable def initialize(*cats) @cats = cats end def each for v in @cats yield v end end end cats = CatList.new( "mike", "cha", "tora" ) p cats.map(&:upcase) # => ["MIKE", "CHA", "TORA"]
仮にバージョンを A.B.C としたとき A: メジャーバージョン 後方互換性を持たない機能追加 B: マイナーバージョン 後方互換性を保つ機能追加 C: パッチバージョン 後方互換性を保つバグ修正 参考 セマンティック バージョニング 2.0.0
何も代入していないけれどもw class Man def age=(value) p "I am #{value}years old" end end Man.new.age = 3 # => "I am 3years old" Rubyをまたやることになりそうなのでリハビリ中。
class Human def say p "hello" end end p Man.instance_methods(false) # => [:say, :age=] 任意のクラスが include しているモジュール一覧を表示 p Array.included_modules # => [Enumerable, Kernel]
import UIKit class ParentViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } // コンテナビューコントローラに追加 func addViewController(vc: UIViewController){ self.addChildViewController(vc) vc.view.frame…
微妙に objc の時と変わった。 毎回、手でやるのがたいへんな画面操作を、自動でやりたいときなどに、この中に組み込んでいたりする。 #if DEBUG // こんなかんじで、 画面遷移を自動でさせちゃう。 let vc = EntryViewController.instantiateFromStoryboard() vc.e…
UILabel 開発中のデバッグでたまにコードで置いちゃう。 let label = UILabel.init(frame: CGRectMake(0, 100, 0, 0)) label.text = "Test Label" label.sizeToFit() view.addSubview(label) イニシャライザの UILabel.init(frame: frame) は UILabel(frame: …
以下のように enum で環境を定義して、そこにAPIのBase URLを持たせることをよくする。 enum Env: Int { case Local case Staging case Production func baseURL() -> String { switch(self) { case .Local: return "http://localhost:3000" case .Staging: re…
// MARK: - UITableViewDelegate func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true) } // MARK: - UITableViewDataSource func tableView(tableView…
ES6について WebDB Press でざっと斜め読みした var ではなく let を使うことでブロックスコープを使える for loop でも let を使うと良い 関数定義にアロー演算子を使えるようになった クラスが使えるようになった constで定数定義できる
会社の人と飲んだ 仕事を早めに切り終えて, 会社の同僚5人と久しぶりに飲みに行った。 自然と話題は会社のことや仕事のことになった。 普段なかなか話せないような、 思っていることをざっくばらんと話せる場があることはとてもいいことだ。 冷や汁を初めて作っ…
今日は rake db 系のコードを読んでみた。 いつもお世話になっているコマンドなので, 内部の処理をあまり理解せずに使っていることに違和感を感じていた。 とくにいくつか,名前がにていて何が異なるのかがわからないコマンドがいくつかあった。 rake db 系のコ…
今日も Rails Guides を少し読み進めた。 Railsが提供している楽観的ロックについて。 楽観的ロックは複数の異なるプロセスが1つのレコードを同時に編集することを許可する。 そして,レースコンディションが起きたとき ActiveRecord::StaleObjectError を投げる…
今日もコツコツと Rails Guide を読んでいる。 keyword でgroup by して,それぞれの個数を求める。 Trend.group("keyword").count 4日連続で何かしらの勉強ができている。 いいかんじ。 ただ、寝不足でめっちゃ眠いですね!
今 Rails Guides の ActiveRecordのところを読んでいる。 Hashで range を指定することで, between 句が書ける事を知った。 Client.where(:created_at => (Time.now.midnight - 1.day)..Time.now.midnight)
今日は nokogiriを使って, はてなブックマークのプログラミングカテゴリをスクレイピングしてみた.
今日はこのIssueを読んでみた ActionController::Parameters#== does not works as expected · Issue #21032 · rails/rails · GitHub hash = { foo: :bar } params = ActionController::Parameters.new(hash) params == hash #returns false あるHashから生…
// @""をはじめから入力してある NSLog NSLog(@"%@", <#object#> ); // メソッド名と行数を表示 NSLog(@"Function: %s, Line: %d", __PRETTY_FUNCTION__, __LINE__ ); // コールスタックを表示 NSLog(@"%@", [NSThread callStackSymbols]);
viewDidload あたりに以下を追加 // 背景をタップしたら、キーボードを隠す UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)]; [self.view addGestureRecognizer:gesture…
公式ドキュメントによると コンテントオフセット contentOffset The point at which the origin of the content view is offset from the origin of the scroll view. あらかじめxポイントスクロールした状態にしておく時に使う。 offset の意味は埋め合わせ、…
// 正規表現オブジェクトを作成 NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"reg_exp" options:NSRegularExpressionCaseInsensitive error:nil]; NSString *targetString = @"target string" // 検索実…
#ifdef DEBUG #define DLog(fmt, ...) NSLog((@"%s:%d\n " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define DLog(...) #endif