Objective-C

Storyboard に作ってある ViewController を code で呼ぶには

Storyboard に ViewController を定義してあって、code から画面表示するにはどうするか。 hoge* lv = [hoge new]; とやってみたんだけどダメで、調べてみたら次のような method があった。 hoge* lv = [self.storyboard instantiateViewControllerWithIdent…

CoreData、relate 先の N テーブルに record を保存する

CoreData はホント鬼門。以前はまって、かなり理解したつもりなんだけど相変わらず分からなくなってしまう。分からなくなる原因は、automatic で処理される部分があるためで、method 名とかも table の名称に応じて変化するため余計分からなくなる。でも、そ…

Master-Detail にはいつも悩まされるね。

Master-Detail のテンプレートを使ってアプリを作っていると、デフォルトのテンプレートの出来栄えのよさに感心してしまう。素晴らしいなと。splitView や navigationController の対応など、これを素で作ろうとしたら、困難を究めることは間違いない、って…

UIView をアニメーションさせると、タップしても反応しないぞ?の対応

UIView に animation を指定した時の話。 UIView を丸くして、Start ボタンのつもり。Start を押したら Stop に表示を切り替えて、さらに、ボタンの alpha を薄くしたり戻したりして生きている風にした訳。それで、もっかいタップしたら、Stop ラベルを Star…

NSMakeRange にはまる

NSMakeRange にはまった・・・ 文字列から部分的に文字列を取出したい場合、Python だと、3 文字目から 5 文字目だったら、[2 : 5] みたいに、start, end で指定する訳だ。すっかりそれに慣れてたら、NSMakeRange でははまる。NSMakeRange では、start, leng…

shouldPerformSegueWithIdentifier は曲者だ。

ようやくアプリをリリースできたんだけど、、、 Direction of Your Destination Satoshi TANAKA Lifestyle Free apps.apple.com 指摘された部分を改修してたらバグを見つけてしまい、解決できなくて困ったなぁ。とりあえず、見つけたバグは指摘されていない…

Direction of Your Destination

目的地の方角を示すアプリが欲しくて、作成した。 従来のナビアプリは道順や予想到着時刻がわかって便利なんだけど、自転車に乗っている時なんかは道順を見るために立ち止まったりしたくないもので、方角と残距離だけわかればよく、そんなアプリ。 方角と残…

applicationWillResignActive とか、どうすんの

いやー、マジはまった。 ライフサイクルの話ね。GPS とか方角を使うアプリ作ってて、こういうアプリはすごい電池喰うから、バックグラウンドに回ったら中断、フォアグラウンドに回ったら再開ってことにしたかったのね。車で言うところの、アイドリングストッ…

Container View を使って delegate

ViewController の中に UIView と UILabel がセットになった View を置きたくなり、それって、結局、ViewController の中に ViewController を配置するということか?と思い、はて、いったいどうやるんだ? Storyboard に配置した ViewController の中に Vie…

mapView に delegate method があるの知らなかった・・・

MapKit を使うアプリを作ってて、user location と goal location の距離や方角を計算しようとしたときの話。 user location の緯度・経度を調べるとどちらも 0 になってしまい、緯度・経度 0 の地点が現在地になり、距離なんてすごいことに・・・ viewDidLo…

CLLocationCoordinate2D に値が入っているかを確かめるには?

CLLocationCoordinate2D に値が入っているのか確かめるにはどうするか。== nil とかやってもダメ。調べてみたところ、次のような関数が・・・ BOOL CLLocationCoordinate2DIsValid(CLLocationCoordinate2D coord); うわー、知らなかったなー。便利だけど、専…

CLLocationCoordinate2D に値が入っているかを確かめるには?

CLLocationCoordinate2D に値が入っているのか確かめるにはどうするか。== nil とかやってもダメ。調べてみたところ、次のような関数が・・・ if ( CLLocationCoordinate2DIsValid( _locationOfGoal ) ) 便利だけど、専用の関数作るって・・・冗舌。

Pin 表示と compass 表示ではまる

MapKit を使っていて、long tap したところに pin を打つ、せっかくだからカスタマイズしてと、カスタマイズは pinView といいう class を作ってそこでカスタマイズするのですよ、と進めていたところ、ところで、現在地も表示したくなってきたんだけど・・・…

simlator で現在地を表示できないぞ?

アプリ作ってて、simlator に現在地を表示しようとしたらできない。なんで? Xcode で simlator の設定変更が必要だったと。 Product > Schema > Edit Schema Run, Core Location, Allow Location Simulation を On に。 また、Default Location が None だ…

simlator で現在地を表示できないぞ?

アプリ作ってて、simlator に現在地を表示しようとしたらできない。なんで? Xcode で simlator の設定変更が必要だったと。 Product > Schema > Edit Schema Run, Core Location, Allow Location Simulation を On に。 また、Default Location が None だ…

実機テストへの遠い道のり・・・

App を作ってて、テストするときの話。実機でテストするなら、以前は macbook に iPhone をケーブルでつないでアプリを転送して・・・みたいなことが必要で、ケーブル繋ぐのめんどくセーというのがあったんだけど、最近は connect に App を転送して TestFli…

UIBezierPath で、線の端を丸くするには・・・

UiBezierPath で直線を描く。線の端が角ばっていて、なんとなく、いやンな感じ。端を丸くしたい。丸くするにはどうするのか。 調べたところ、lineCapStyle という property があるではないか。勇んで property を設定しても、変化なし・・・? bezierPath.li…

storyboard でもっかい接続してみるってのも、原始的ながら有効なことあるんだね。

今日ハマったのは、navigationController で戻ってきたときの値の渡し方と、 viewDidLoad が呼ばれないので KVO の登録ができず、結果、値が変わっても呼ばれないという罠。 順を追って説明すると、navigationController の back ボタンで戻ってきました。さ…

後から navigation controller を追加するとハマるね。

Xcode でアプリ作ってて、sigleton テンプレートで進めていたら、後から navigation bar を追加したくなって、簡単・簡単とタカをくくっていたらハマるねこれ。 まず、storyboard に navigation bar を追加しようと object の一覧を見たら navigation bar と…

UITextField に何も入力されていないの判定

UITextField に何も入力せず return を押した場合、検索処理などをせず無視したいところ。これを実現するため、UITextField に何も入力されていないことを確認するにはどうするのか。 すぐに思いついたのが文字数を確認する方法。これ、やり方よくわからない…

UIImageView のパラパラアニメにハマる・・・

いやー、はまりましたね。 猫の尻尾をゆらゆらさせたくて、猫の絵を傾けたりなんやらしてたのですが、どうにもうまくいかない。 しょうがないので画像を差し替えることでパラパラアニメにしようと試みたところ、それもうまくいかない。 パラパラアニメは次の…

UIView の背景を透明に・・・

UIView 内に画像を表示しアニメーションさせる。異動先で、UILabel と重なり合うのだが、UIView の背景が白のため、重なった時になんかヘン。UILabel の文字が欠けてしまったように見える。 そんな時は、UIView の背景を透明にすればよいのだ、と、次のよう…

UITableView の右端と左端

UITableView で、template で普通に作成していると、右端は+(add)、左端は Edit になっている。add はまだいいとして、Edit は曲者。このボタンを record を削除できのだけど、削除は swipe で実装しているので Edit ボタンはなくても構わない。ってか、…

UITableView で custom cell

またはまった。UITableView で custom cell をしようとした話。 detail に tableView を配置して、内容は custom cell ってのはうまくいっているんだけど、テンプレートになる Master の cell を custom cell にするのがうまくいかなくて。こっちの方がネッ…

カメラの使用を許可の設定が有効になるタイミングは・・・

うーん、またハマってしまった・・・ カメラの機能を使って QR を読み込もうとしてて、利用者に許可取らないとならないんだよね、info.plit に、以下の propety を追加: Privecy - Camera Usage Description そうすると、設定、プライバシー、カメラを選ぶ…

property と global 変数の使い分け

scope の範囲を広げたいので、global 変数にするか、あるいは property として定義するか、どっちがいいのか。効能はどちらも変わらないのでどうするか。 自分としての結論は、その class の変数にしたいなら property で、class 内でしか通用しなくていいな…

CoreData: detal に tableView を表示する方法

いつもながらハマったね。CoreData で 1 対 N をやろうとするといつもハマるので、この手のプログラムを書くときはかなり萎える。あらかじめよい点も記載しておくと、以前は CoreData で管理する table とか field を変更すると、その都度、header ファイル…

UIImageView に画像がセットされていなかったら・・・の判定

UIImageView にカメラロールから選んだ画像をセットし、ボタンが押されたら色分解する。画像がセットされていなかったら、何もしない。 UIimageView に画像がセットされているかどうか判定するにはどうするか。正解は次の通り。 if ( _cookingImage.image ==…

QR コードをスキャンする、認識できた QR コードを四角で囲む、のハマりどころ

ハマった〜 QR コードをスキャンするプログラムを作成していて、読み込むところまでは簡単・簡単、前作ったことあったのでコピペ、終了!と思ったら、読み込んだn QR コードを四角で囲むようにしたくなって、そこがうまくいかない。 二日間ぐらいハマって、…

removeFromSuperview: は該当する view が表示されていなくても大丈夫

button を押したら view を表示し、用が済んだら view を消す。 [self.view removeFromSuperview:hoge]; こんな感じで使うのですが、今回困ったのが、該当する view が表示されているのか表示されていないのかよくわからない状況で、removeFromSuperview し…