railsとswiftを連携させる練習
参考
詰まり
以下のコードをどこに挟むのかがわからず。
TweetsViewController.swiftに挟むと以下のエラー。
エラーメッセージ
Method does not override any method from its super class
override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return tweets.count } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) let tweet = tweets[indexPath.row] cell.textLabel?.text = tweet.title return cell }
詳しい方、いらっしゃいましたら教えてくださいまし。
ruby silver 勉強記録 (4日目)
・学習内容
1、find_allとselect
配列の検索。
find_all
メソッドは、条件に合う要素を探して集めます。ブロック引数itemに要素を入れながらブロックを繰り返し、ブロックの戻り値が真になったときの要素を集め、配列にして返します。
select
メソッドは、find_all
の別名です。
次の例は、1から30までの整数のうち7で割り切れるものを集めています。
2、mapとcollect
map
メソッドは、要素の数だけ繰り返しブロックを実行し、ブロックの戻り値を集めた配列を作成して返します。collect
メソッドの別名です。
3、zipとfirst
zip
zip
メソッドは、配列の要素を引数の配列other_arrayの要素と組み合わせ、配列の配列を作成して返します。transpose
メソッドで[array,other_array, ...].transpose
としたときと同じく、行と列を入れ替えます。ただし、transpose
メソッドと違って足りない要素はnil
で埋められ、余分な要素は捨てられます。
first
first
メソッドは、配列の最初の要素を返します。配列が空のときはnil
を返します。
引数numに整数を指定すると、先頭からその数だけ要素を取り出して、配列にして返します。配列が空のときは空の配列を返します。
4、slice
slice
メソッドは、[]
メソッドの別名です。配列から引数で指定した位置の要素を取り出して返します。
引数の指定のしかたと戻り値については、[]
メソッドを参照してください。
5、eql?
eql?
メソッドは、ハッシュのキーが配列であるときに、「キーとして同じかどうか」を調べるために内部的に使われるメソッドです。
レシーバarrayと引数other_arrayの各要素を順に比較して、それぞれが同じであればtrue
、違いがあればfalse
を返します。要素の比較には、各要素のeql?
メソッドが使われます。
配列の比較には、普通はeql?
メソッドを使わずに、「配列の内容が同じかどうか」を調べるには==
メソッドを、「同じオブジェクトかどうか」を調べるにはequal?
メソッドを使ってください。
6、equal?
equal?
メソッドは、レシーバobjと引数other_objが同じオブジェクトならtrue
、別のオブジェクトならfalse
を返します。
Ruby 1.9 Ruby 1.9では、Object
クラスのequal?
メソッドはBasicObject
クラスに移されました(この変更は、Ruby 1.8用に書いたプログラムには特に影響はありません)。
Object
クラスでは==
とequal?
は同じメソッドの別名です。しかし、==
と違ってequal?
メソッドはサブクラスで上書きされず、常にオブジェクトの同一性を調べるのに使われます。自作のクラスでもequal?
を上書きしないでください。
次の例では、文字列を==
とequal?
で比較しています。String
クラスの==
は、文字列の内容が同じであればtrue
を返します。equal?
で比較すると、同じ内容でもオブジェクトが別ならfalse
になります。
ruby silver 勉強記録 (3日目)
毎日やるためにはルーティーンをしっかり組まないといかんと思った。
本当にすぐにさぼってしまう。
学習内容
・定数のオーバーライド
警告は出るができる。
・演算子の意味
..と&
1、範囲式(..)
1..20で1から20
p( 3 & 5 ) #=> 1 ・・ 二進数で 0011 & 0101 #=> 0001
参考
Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (Ruby 2.4.0)
・sortメソッドの使い方
「self <=> other」メソッドの場合はselfとotherを比較して、selfが大きい時に正、等しい時に0、小さい時に負の整数を返します。そこで降順に並べるように記述してみます。
参考
配列内の要素をソートする - 配列(Array)クラス - Ruby入門
・配列の積集合
a & b
配列の重複したものを取り出す。
ruby silver 勉強記録 (2日目)
使用教材
学習内容
組み込みライブラリの配列と文字列
昨日の10問を解き直し
今日の分野で15問を新規に解く
考察
これまでの学習から、試験の肝はメソッドの動きを覚えることにあると思った。
普段使っているメソッドの数は知れているので、試験用にこれらを網羅的に覚える必要がある。結構しんどい。
面白くするためには、普段使わないメソッドをあえて使って何か小さいプログラムを作ってみることもいいと思った。今のところ、いつまでにsilverを取れ!とは言われていないし。
ruby silver 勉強記録 (1日目)
勉強方法
過去問をとく => わからないところは解説を読んで復習する
心がけること
終わった問題でも試験日まで何回も解く
目標
過去問1日10〜20問。
本日の記録
・マジックコメントの書き方
coding: エンコーディング名
・メソッド内と外では変数名が同じでも別の変数として扱われる。
・puts 090は通らない。090が数として存在できないから。
・三項演算子 条件? true : false
・定数のオーバーライドには警告が出るが変更は可能。
MAX = 100 puts MAX MAX = 1000 puts MAX => 1000
・引数のアスタリスク
引数にアスタリスクをつけると任意の個数の引数が渡せる。
これは配列で保存される。
def foo(*a) p a end foo(1,2,3) =>[1,2,3]
・変数の書き方について
ローカル:アルファベット小文字、もしくは_から始まり、1文字以上
クラス:@@で始まる
グローバル:$
インスタンス:@
deviseのrootをregistrations#newにすると、undefined method `validatable?' for nil:NilClassになる
deviseのrootをregistrations#newにすると、undefined method `validatable?‘ for nil:NilClassになる
原因分析
registrations#newにいきなりアクセスすると、レシーバーであるdevise_mappingが空なので、メソッドvalidatable?が機能しないのでエラーになる。
解決策
どこかのページからregistrations#newにアクセスすると普通に表示される。
やりたいこと
root画面にregistrations#newを表示させたい。
js学習メモ 変数について
var message = $textField.val(), $fileField.val();
変数に2つの値は入らない。,以降は読み込まない。なので、新しい変数を用意する。