ページ

2009年11月15日日曜日

今週のCocoa情報(11/15) - 今週気になった Cocoaプログラミング情報の紹介

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

今週気になった情報。

C/C++/Objective-C text recognition library - Stack Overflow

文字認識ライブラリの話題。Tesseract OCR  が紹介されていた。


MOONGIFT: » Twitter向けにも使えるCocoaアプリケーション向けRESTライブラリ「CocoaREST」:オープンソースを毎日紹介
sdegutis's CocoaREST at master - GitHub

github 掲載のサンプルコードを転載しておく。アクション-ターゲットっぽいインターフェイスとなっている。

- (void) awakeFromNib {
    // inside a header file, declare manager as an instance variable
    SDTwitterManager *manager;

    // create out manager, retaining it as we want it to stick around
    manager = [[SDTwitterManager manager] retain];
    manager.successSelector = @selector(twitterManager:resultsReadyForTask:);
    manager.failSelector = @selector(twitterManager:failedForTask:);
    manager.delegate = self;

    // this is a must for certain API calls which require authentication
    // change them to real login values or the tasks will fail
    manager.username = @"USERNAME";
    manager.password = @"PASSWORD";

    // 3 tasks can be run simultaneously
    manager.maxConcurrentTasks = 3;

    // create and run a basic task
    SDTwitterTask *mentionsTask = [SDTwitterTask taskWithManager:manager];
    mentionsTask.type = SDTwitterTaskGetPersonalTimeline;
    mentionsTask.count = 3;
    mentionsTask.page = 10;
    [mentionsTask run];
}

- (void) twitterManager:(SDTwitterManager*)manager resultsReadyForTask:(SDTwitterTask*)task {
    NSLog(@"%@", task.results);
}

- (void) twitterManager:(SDTwitterManager*)manager failedForTask:(SDTwitterTask*)task {
    NSLog(@"%@", task.error);
}


decodeHexString obj-c implementation, Should I support odd lengthed hexstrings, and if so, how? - Stack Overflow

気になったのは記事自体ではなく書かれていたソースコードの一部。以下に引用。
int char2hex(unsigned char c) {
    switch (c) {
        case '0' ... '9': 
                return c - '0';
        case 'a' ... 'f': 
                return c - 'a' + 10;
        case 'A' ... 'F': 
                return c - 'A' + 10;
switch文で ... が使えるのか。

試してみた。
-(void)awakeFromNib
{
 char ch = 'A';
 
 switch (ch) {
  case '0' ... '9':
   NSLog(@"0-9");
   break;
  case 'a' ... 'z':
   NSLog(@"a-z");
   break;
  case 'A' ... 'Z':
   NSLog(@"A-Z");
   break;
  default:
   NSLog(@"non");
 }
}

コンソール:
[Session started at 2009-11-15 06:02:54 +0900.]
2009-11-15 06:02:55.223 Helloworld2[825:10b] A-Z

おー。これは C言語の仕様なんだろうか。恥ずかしながらこれは知らなかった。