google検索技まとめ

 プログラミング  Comments Off on google検索技まとめ
Jan 082013
 

google検索のまとめ。書籍のヒットが邪魔な場合。appleサイトからobjective-cの話題のPDFだけを探す場合。出先の天気の調べ方のメモ。

ネットではたまにこの手の記事は見かけるものの、気に留めた事がないのでいくつかメモ。モバイルならアプリが便利だが、PCだと目の前のブラウザに打ち込んだ方が速いし楽なのだ。

大事な事

()の中は記憶しておく事。

除外(-付ける)

書籍のヒットがじゃまでobjective-cの検索をする場合

  • objective-c -amazon

cocoa以外のネタで探したい

  • objective-c -cocoa

サイトのどこかに書いてあったとき(site:)

某サイト(うち)の中でどこかのdrawrectを含む記事を探す

  • site:http://blog.f60k.com drawrect

PDF探し(filetype:)

xcodeのチートシートのPDFを探す

  • filetype:PDF cheatsheet xcode

appleサイトからobj-cネタのpdfを探す

  • filetype:pdf site:apple.com objective-c

天気

渋谷の天気を調べる

  • 渋谷 天気

銀座駅の天気を調べる

  • 銀座駅 天気

乗り換え(から)

秋葉から銀座のルート探しの場合

  • 秋葉から銀座

輸入など海外購入

85ドルのアプリの日本円を知る

  • 85ドル

ヤマト配達(ヤマト)

ヤマトの荷物の配達状況を知る

  • ヤマト 303065653262

言語定義を知る(define:)

SEOとは何だったかを調べる

  • define:seo

*と””

使いこなす良い例がないため未定…

 Posted by at 18:01

UIViewControllerのtitleがtruncated処理されてしまう問題

 プログラミング  Comments Off on UIViewControllerのtitleがtruncated処理されてしまう問題
Jan 072013
 

UIViewControllerのtitleがtruncatedされてしまう場合の原因はviewcontrollerのviewの呼び出しのタイミング。initでself.viewを呼ぶとtitleのframeがおかしくなる。

UIViewControllerのtitleがtruncated処理されてしまう問題

単純なバグ対応のメモ。titleが「MyName」が「M…」という感じになってしまう場合がある。以下の場合に発生する。


- (id)init
{
//self.viewを呼ぶ
}

- (void)viewDidLoad
{
self.title = @"MyName";
//titleのframeがうまく設定されない(M...のようにtruncate処理されてしまう)
}

以下でも同じ。


- (id)init
{
//self.viewを呼ぶ
}

- (void)viewDidAppear
{
self.title = @"MyName";
//titleのframeがうまく設定されない(M...のようにtruncate処理されてしまう)
}

解決法(solution)

  • initではviewプロパティへアクセスしない
  • viewDidLoadのタイミングでviewのプロパティへアクセス

- (id)init
{
}

- (void)viewDidLoad
{
//self.viewを呼ぶ
}
- (void)viewDidAppear
{
self.title = @"MyName";
//titleは正しく表示
}

 Posted by at 02:13

ARC bridge のまとめ

 プログラミング  Comments Off on ARC bridge のまとめ
Jan 042013
 

Objective-CのARC環境での型変換。CoreFoundation(CF変数)との__bridgeでの型変換(キャスト)まとめ。__bridgeと__bridge_retainedと__bridge_transferの簡単な説明。

ARC

  • NS環境(Objective-C言語環境)ではARC環境と非ARC環境の2つが存在する
  • ARC環境/非ARC環境ではallocできる
  • ARC環境ではretainできない
  • ARC環境ではreleaseできない
  • CF環境(C言語環境)CoreFoundationではARC環境は存在しない
  • CF環境(C言語環境)CoreFoundationではプログラマによるretain/releaseが必要
  • CFの変数とARC環境のObjective-C変数との型変換(キャスト)ができる

キャスト

次の3つがある。

__bridge(NS→CF)

  • NS変数は自動解放(ARCなので)
  • CF変数は自動解放(NS変数が破棄された時点で)
NSString *name = @"Skytree";
CFStringRef nameRef = (__bridge CFStringRef)name;//0のまま、nameの破棄で自動解放

__bridge_retained(NS→CF)

  • NS変数は自動解放(ARCなので)
  • CF変数は+1されている
NSString *name = @"Skytree";
CFStringRef nameRef = (__bridge_retained CFStringRef)name;//nameRefは+1されている
//(つまりは?自分でnameRefの-1必要)

__bridge_transfer(CF→NS)

  • CF変数は-1されている
  • NS変数は自動解放(ARCなので)
CFStringRef nameRef = CFStringCreateMutableCopy(alloc, 0, CFSTR("Skytree"));
//CF変数はallocにより+1されているが...

NSString *name = (__bridge_transfer NSString*)nameRef;
//nameRefはここで-1されている(解放不要)

http://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFDesignConcepts/Articles/tollFreeBridgedTypes.html

 Posted by at 10:32