Objective-Cで書かれたソースコードをSwiftに変換してくれる「Objective-C to Swift Converter」

  1. 公開日:2015/08/06
  2. 更新日:
  3. Web
  4. 0
5
SHARES
B!

Appleの製品で動作するアプリケーションは、全て「Objective-C」で書かれていましたが、先日のWWDCで新言語「Swift」が発表され話題になりました。「Swift」は、従来よりも直感的なプログラミングを行うことができる言語であり、プログラミング初心者でもとっかかりの良いものとなっています。

今回は、今までの主流言語であった「Objective-C」のソースコードを解析して、「Swift」に変換してくれる「Objective-C to Swift Converter」をご紹介します。もちろん、人の手で作られたものですから完全ではありませんが、「Objective-C」経験者ならありがたいサービスかもしれません。

https://objectivec2swift.com/?ref=producthunt

サンプルは以下の通りです。こちらが「Objective-C」で書かれたもの。

@implementation SampleClass
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CountryCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    NSString *continent = [self tableView:tableView titleForHeaderInSection:indexPath.section];
    NSString *country = [[self.countries valueForKey:continent] objectAtIndex:indexPath.row];
    cell.textLabel.text = country; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    return cell;
}
@end

そして、こちらが変換後のソースコード。全て「Swift」の形式で書き直されていることがわかります。まだまだ完全にパースできる状態ではないようですが、「Swift」への移行を考えている方がいらっしゃるならば、こちらのサイトを一度利用してみてはいかがでしょうか。

class SampleClass {
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        static var CellIdentifier: String = "CountryCell"
        var cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier)
        if cell == nil {
            cell = UITableViewCell(style: UITableViewCellStyleDefault, reuseIdentifier: CellIdentifier)
        }
        var continent: String = self.tableView(tableView, titleForHeaderInSection: indexPath.section)
        var country: String = self.countries.valueForKey(continent).objectAtIndex(indexPath.row)
        cell.textLabel.text = country
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator
        return cell
    }
}

こちらのコードを見る限りでも、いかに「Swift」が「Objective-C」の独特の書き方と異なり、優れていることがわかりますね。私は、「Objective-C」を少し触ったことがあるくらいで、「Swift」についてはまだまだ勉強不足ですが、サンプルを見ながら勉強していきたいと思います。

この記事が気に入ったらいいねしよう!
こちらの記事も読まれています
ご意見ボード
匿名で管理人に送信されます。※送信専用です。返信はできません。
ご指摘・ご意見
Top