自習部屋 このページをアンテナに追加 RSSフィード

2008-10-22

クロージャの例

| 01:43 | クロージャの例 - 自習部屋 を含むブックマーク はてなブックマーク - クロージャの例 - 自習部屋 クロージャの例 - 自習部屋 のブックマークコメント

class Test
  def initialize(arg0, &action)
    @action = action
  end

  def exec
    @action.call(self)
  end
end
t = Test.new { puts "hello" }
t.exec # hello

コードブロックが Proc オブジェクトに変換されている。

その他にも、lambda を使うと、ブロックを Proc オブジェクトに変換できる。

def hello
  return lambda { |n| puts "hello#{n}" }
end
h = hello
h.call("!") # hello!

イテレータとは

| 01:34 | イテレータとは - 自習部屋 を含むブックマーク はてなブックマーク - イテレータとは - 自習部屋 イテレータとは - 自習部屋 のブックマークコメント

Rubyイテレータとは“コードブロックを呼び出せるメソッド”らしい。

クラスメソッドの定義方法

| 01:25 | クラスメソッドの定義方法 - 自習部屋 を含むブックマーク はてなブックマーク - クラスメソッドの定義方法 - 自習部屋 クラスメソッドの定義方法 - 自習部屋 のブックマークコメント

class Test
  def Test.class_method1
  end

  def self.class_method2
  end

  class << self
    def class_method3
    end
  end
end

UIPickerView

| 12:42 | UIPickerView - 自習部屋 を含むブックマーク はてなブックマーク - UIPickerView - 自習部屋 UIPickerView - 自習部屋 のブックマークコメント

あとで書く

cols の指定

numberOfComponentsInPickerView

rows の指定

numberOfRowsInComponent

選択された row 取得

didSelectRow

UITableView

| 11:42 | UITableView - 自習部屋 を含むブックマーク はてなブックマーク - UITableView - 自習部屋 UITableView - 自習部屋 のブックマークコメント

テーブルビューにセクションがいくつあるか返す。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return [listOfContents count];
}

1セクションにいくつ row が入るか指定する。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 1;
}

Row ごとの cell を作って返す。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *MyIdentifier = @"MyIdentifer";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
    }
    
    cell.text = [listOfContents objectAtIndex:indexPath.row];
    return cell;
}

タップされたときの動作

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  // indexPath.row でタップされた要素の番号がとれる。
  // cellForRowAtIndexPath と組み合わせて UITableViewCell が取れる
  UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
}

アクセサリーを変える

cell.accessoryType = UITableViewCellAccessoryCheckmrk;

DaniloDanilo2012/08/19 00:59It's a pleasure to find smoonee who can think so clearly

jlpgxqeujlpgxqeu2012/08/19 19:445dmVHC <a href="http://dpyhryivtxlu.com/">dpyhryivtxlu</a>

トラックバック - http://studyroom.g.hatena.ne.jp/kusakari/20081022