COMPANY SERVICE STAFF BLOG NEWS CONTACT

STAFF BLOG

スタッフブログ

TECHNICAL

テクログ

2014.05.07

Objective-C | 文字列のエスケープ

テクログ

Mac,iPhone,Objective-C 全て利用歴5ヶ月の新米プログラマーが送る

自分が使って役立ったmethod集

シリーズ第肆弾です。

今回は通信するときに利用する。文字列のエスケープです。

基本メール送信で使うことが多いと思います。

common.h

+ (NSString *)escapeString:(NSString *)text;

common.m

+ (NSString *)escapeString:(NSString *)text
{
    NSString *plainString = text;
    NSString *content = (__bridge_transfer NSString *)
      CFURLCreateStringByAddingPercentEscapes(NULL,
      (CFStringRef)plainString,
      NULL,
      (CFStringRef)@"$"!~&=#[]._-+`|{}?%^*/"@-/:;(),",
      kCFStringEncodingUTF8 );
    return content;
}

呼び出し方

ViewController.h に修正はありません。

ViewController.m

#import "TCViewController.h"
#import "common.h"

@interface TCViewController ()

@end

@implementation TCViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
?// Do any additional setup after loading the view, typically from a nib.
    
    NSString *tmp = [common escapeString:@"テスト&%$?"];
    NSLog(@"テスト&%%$? -> %@",tmp);
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

実行結果

2014-05-07 12:18:59.376 escTest[1561:60b] テスト&%$? -> %E3%83%86%E3%82%B9%E3%83%88%26%25%24%3F

__bridge_transfer を使う事でARCがメモリ管理してくれるそうです(伝聞)

今回はエンコードしか使いませんでしたが、

デコードは

(__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding

これで可能です。

今回作成するに当たり参考にさせて戴いたサイトです

Dolice Lab アプリ内メーラーを起動する「MFComposeViewController」の使用方法

気楽なソフト工房 ARC環境下でのCFURLCreateStringByAddingPercentEscapes()について

そのほかのObjective-C関連の記事をお探しならコチラをどうぞ

弊社から出している拙作スケジュールのアプリです。
是非ダウンロードして感想をお聞かせ下さい。

『Team Scheduler』 概要
▼アプリ価格: 無料
▼対応OS: iOS(iPhone/iPod Touch)、Android
▼カテゴリ: 仕事効率化(App Store)、ビジネス(Google Play)
▼対応言語: 日本語
▼推奨環境:
iOS版: iPhone4以降、iOS6. 0以降
Android版: Android OS 2. 3以降
▼ダウンロード:
App Storeからダウンロード
Google playで手に入れよう

この記事を書いた人

core-corp

入社年

出身地

業務内容

特技・趣味

テクログに関する記事一覧

TOP