信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

LIST OF ARTICLES

記事一覧

  • テクログ

    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以降 ▼ダウンロード:    
  • テクログ

    Xcode 5 |The executable was signed with invalid entitlements.

    毎回リリース終わると忘れるのでメモ リリースが終わった後、新しく機能を追加して実機で確認しようとすると The executable was signed with invalid entitlements. というエラーが出て実機に転送出来ません。   実機がiOS6だと問題ないのですが、iOS7の場合は確実にエラーとなります。 修正方法は簡単で、上にある水色のバーからProduct→Scheme→Edit Scheme または、「command+shift+,」 で画面を呼び出し Run プロジェクト名のBuild Configuration を Release から Debug に変更。 ついでに Archive も Debug にすれば完璧。 リリースするときはもしかしたらRun の変更は必要なくて Archive だけ Release にしておけば 元からエラーが出ないかも・・・  そのほかのObjective-C関連の記事をお探しならコチラをどうぞ
  • テクログ

    Objective-C | 文字をふわっと出す (fade in)

    Objective-C | 文字をふわっと出す (fade in) Mac,iPhone,Objective-C 全て利用歴4ヶ月の新米プログラマーが送る 自分が使って役立ったmethod集 シリーズ第参弾です。 今回はあまり使い所が無いかもしれない、文字のフェードインです TeamSchedulerのアプリでも利用箇所は一カ所だけですが、メッセージ表示をオサレに表示するところで利用しています。 UILabel に表示することを想定していますが、UITextにすると入力欄に使用可能です。 common.m // text fade in 文字をふわっと出す + (void)labelFadeIn:(UILabel *)label message:(NSString *)message {     label.text  = message;     label.alpha = 0; // 透明から始める     [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseIn                      animations:^{ label.alpha = 1;}                      completion:nil]; } 呼び出し方 ViewController.h に修正はありません。 ラベルとボタンはストーリーボードから持ってきて下さい。addSubView使おうとしたのですがうまくいきませんでした。 まあ、あっぽーさんもStoryBoard推奨しているのでよし。 #import "ViewController.h" #import "common.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UILabel *lblMessage; // ラベル - (IBAction)Button:(id)sender; // ボタン @end @implementation ViewController - (void)viewDidLoad {     [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning {     [super didReceiveMemoryWarning];     // Dispose of any resources that can be recreated. } // 処理実行 - (IBAction)Button:(id)sender {     // message fade in     [common labelFadeIn:_lblMessage message:@"フェードイーン、フェードイイン~ たちまちあふれる神秘の力~"]; } @end 実行結果 アニメーションに関わる部分なので、自分で確かめて下さい。 ちなみに、+ (void)labelFadeIn:(UILabel *)label message:(NSString *)message の中の 最初のalphaを1.0、 ブロック構文内のanimations:^{ label.alpha = 0;} にすると フェードアウトになります。 弊社から出している拙作スケジュールのアプリです。 是非ダウンロードして感想をお聞かせ下さい。 『Team Scheduler』 概要 ▼アプリ価格: 無料 ▼対応OS: iOS(iPhone/iPod Touch)、Android ▼カテゴリ: 仕事効率化(App Store)、ビジネス(Google Play) ▼対応言語: 日本語 ▼推奨環境:  iOS版: iPhone4以降、iOS6. 0以降  Android版: Android OS 2. 3以降 ▼ダウンロード:    
  • テクログ

    Objective-C / 日付(NSDate)型を 文字列に変換

    Mac,iPhone,Objective-C 全て利用歴4ヶ月の新米プログラマーが送る 自分が使って役立ったmethod集 シリーズ第二弾です。 前回、文字列を日付に変換できたので逆もやりたくなるのが人情 日付型を文字列に変換します。 やっていることはフォーマットする書式を渡して、 「dateFromString」メソッドでNSDateに変換します。 今回も自前のObjective-Cクラス、common.hとcommon.mに書き足していきます。 common.h + (NSString *)dateToString:(NSDate *)baseDate formatString:(NSString *)formatString; common.m /* 日付を文字列に変換  */ + (NSString*)dateToString:(NSDate *)baseDate formatString:(NSString *)formatString {     NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];     //24時間表示 & iPhoneの現在の設定に合わせる     [inputDateFormatter setLocale:[NSLocale currentLocale]];     [inputDateFormatter setDateFormat:formatString];     NSString *str = [inputDateFormatter stringFromDate:baseDate];     return str; } 呼び出し方 ViewController.h に修正はありません。 #import "ViewController.h" #import "common.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {     [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.     [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.     NSDate *now =  [NSDate date]; // 当日取得     // yyyy は小文字にしないと12月末の判定がおかしくなるので注意     NSString *dateStr = [common dateToString:now formatString:@"yyyy-MM-dd EEE"];     NSLog(@"%@",dateStr); } - (void)didReceiveMemoryWarning {     [super didReceiveMemoryWarning];     // Dispose of any resources that can be recreated. } @end 実行結果 2014-04-07 Mon スケジュールアプリを作成していたこともあって日付の変換は大変でした これがあれば、多少なりとも役立つのでは無いでしょうか? 本日、自社開発アプリ第一弾がリリースされました \(^^)/ ・iTunes 『Team Scheduler』 https://itunes.apple.com/jp/app/id850275612 ・Google play 『Team Scheduler』 https://play.google.com/store/apps/details?id=net.teamscheduler 簡単登録でみんなの状況を確認出来るアプリです。 是非ダウンロードしてご意見をお聞かせ下さい そのほかのObjective-C関連の記事をお探しならコチラをどうぞ
  • テクログ

    Objective-C / 日にちの文字列を 日付(NSDate)型に変換

    Mac,iPhone,Objective-C 利用歴4ヶ月の新米プログラマーが送る 自分が使って役立ったmethod集 シリーズ第一弾です。 今回は、文字列を日付に変換についてです 今後も自前のObjective-Cクラス、common.hとcommon.mに書き足していきます。 common.h + (NSDate *)stringToDate:(NSString *)baseString; common.m + (NSDate *)stringToDate:(NSString *)baseString {     NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];     // iPhoneの現在の設定に合わせる     [inputDateFormatter setLocale:[NSLocale currentLocale]];     [inputDateFormatter setDateFormat:@"yyyy-MM-dd"];     NSDate *inputDate = [inputDateFormatter dateFromString:baseString];     return inputDate; } 呼び出し方 ViewController.h に修正はありません。 #import "ViewController.h" #import "common.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {     [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.     NSDate *dateVal = [common stringToDate:@"2014-04-15"];     NSLog(@"%@",dateVal); } - (void)didReceiveMemoryWarning {     [super didReceiveMemoryWarning];     // Dispose of any resources that can be recreated. } @end 実行結果 2014-04-14 15:00:00 +0000 呼び出す方は + (NSDate *)stringToDate:(NSString *)baseStringで設定しているフォーマットつまり、"yyyy-MM-dd"形式じゃ無いとうまく変換され無いので注意が必要です。"yyyy/MM/dd"は結果が正しく取得出来ません。 普段使うフォーマットが違う場合は書き換えておくといちいち変換しなくていいので便利です。 実行結果が15:00:00なのはGregorianで表示しているからで、 画面に表示するときにはlocaltimeに変換されます。   参考にさせていただいたサイトです 強火で進め そのほかのObjective-C関連の記事をお探しならコチラをどうぞ
  • テクログ

    Illustrator「線幅ツール」について

    こんにちは。 デザイン課のいまべぇです。 IllustratorCS5から新たに導入された「線幅ツール」について書こうと思います。 私はちょこちょこイラストを描く機会があるのですが、このツールはかなり便利です。 「線幅ツール」は、名の通り線幅を自由に変えることができます。 例えば、ベジェ曲線で書かれた矢印↓ 「線幅ツール」に持ち替えて、アンカーポントの辺りをクリックしながらひっぱると線幅が変わります。   抑揚のある矢印になりました。 線幅ツールが無い頃は、パスのアウトラインをとってアンカーポイントをいじって線幅の抑揚を作っていました。 なので、線幅を変えた後にパスの長さを調節する事が上手くいかずガタガタになったり、微調整に融通がききませんでした。 しかし、線幅ツールは線幅をスピーディに変えることができるだけではなく、自由に長さや色を変えたり、アンカーポイントを追加して形を変えることもできるのでとても便利です。   去年の案件で描いたイラストです。  線幅ツールで線幅を変えてみます。  線幅を変えると単調だった印象が少し変わってきます。 色をつけて出来上がり。 「線幅ツール」が便利なのは、作業工程のどの場面でも微調整ができるというところです。 では、Illustratorライフを楽しんでくださいね!