ヴェポライザーでシャグ:Akropolis fine cut

先日評判の良い Akropolis fine cut を買いました。感想は、なんというか、非常に複雑な味です。端的に表現すると、梅酒のような味わいです。酸味があり、キック感があり、ちょっとだけ香ばしく、甘みは少ない。梅酒と正露丸を混ぜたような味と言うのでしょうか。

と書くと、それは美味いのか?と訝る方もいらっしゃるでしょう。決してまずくはなくて美味い部類であることは間違いありません。でも、梅干しが嫌いな自分としては、それほど美味いものにも思えずで、なんだか複雑な気分です。

シャグ 探しの旅はまだまだ先が長そうで・・・

ヴェポライザーでシャグ:MANITOU gold

ヴェポライザー で評判の良いシャグ を探していたら、MANITOU gold を知って、試してみたくて我慢できずに買ってしまいました。

スパイシーというか、ヒリピリ感がすごいですね。あと、ちょっと酸っぱい感じに思いました。甘みは少ないような。でも、複雑な味が混ざっていて、なんか癖になります。

葉はかなり乾燥しているので、加湿した後どうなるかまた試してみたいと思います。

ヴェポライザーでシャグ:Bi Bo fine cut

タバコ屋て試しに吸わせてもらえた。
このタバコ、高くてとても買えそうにないので試せてよかったです。
試してみたら、あ、この香りなんか覚えあるぞ、なんたっけー、思い出せました。

ヨーグルトですね。

それほど強い香りでなくて飽きがこない、いくらでも吸える香りの加減。
感心したのがキック感けっこうあること。
やっぱり銘柄によるね。
気に入ったけど、値段が高すぎなので買っても年一回とかだろうなぁ。

UITableView で object を追加した直後に削除すると error

またハマりました。UITableView で insertObject し、直後にその object を削除すると error。エラーメッセージがまた大層なもので、こんな感じ。

[error] error: Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.

何これ? CoreData のバグじゃないのと思ったんだけど、そうではなくて、beginUpdate を実行していなかったから。以下の method に書いておくべき。

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller

ところで、beginUpdate したら、endUpdate はどうするの?と思ったらそれは次の method で実装していた。

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller

endUpdate しているのに、対となる beginUpdate が宣言されていないのでエラーになっていたというわけ。試しに、begin も end もコメントにしてみたらエラーは出なくなる。これ、なくてもなくても良いものなのだろうか。Apple の Document 読んでみたら、insert, delete とかするときは begin-end の block を使わないと table attribute such as row count とかがおかしくなっちゃうよ、とあるので、書いおいたほうがよさそう。も少し詳しく調べてみたら、例えば、ある行を削除すると index は前に詰まりますが、begin-end block 内では削除前の index を保持しているそうです。ちょっと高尚なことをしようとすると、削除前の index も参照したいよねということはあり得る話。なので、やっぱり begin-end block を使えということ。ただ、エラーにならないので必須ではないと。もちろん、自身のエラーのように、begin-end のどちらか一方だけというのは論外・・・

この TableView は storyboard に手動で追加したものなので、必要な method は自分で書かなければならず、色々と漏れている method があるなと。

さて、次は アプリのプログラムに必要なデータで、category table の data を iCloud から取ってくるか・・・

 

ヴェポライザーでシャグ:RAW Classic

以前からちょっと気になっていた RAW。ちょうどシャグ が切れたので買ってみました。30g なのに ¥900 over と、高いですね。ヴェポライザーでは葉の消費量が少ないとは言え、高すぎます。

4 種類あるのでどれにしようか悩ましかったんですが、Classic にしました。味ですが、濃厚+甘い、酸味もあり旨い。香料なしでこの味はすごいなと思いました。甘さはまるでメイプルシロップのようです。

気に入ったのでまた買いたいような、ちょっと高いので手が出ないような・・・

次はアクロポリスを試してみよう。

UITableView で insertObject してもデータが表示されない

CoreData で Entity を複数定義し、Tab で画面を切り替えるようにしようとしていて、Storyboard に Table View を配置し、dataSource なんかも引っ張っておく。ここまではよかったんですが、Tab で画面を切り替えて + ボタンを押しても何も表示されない。よくわからない。

うまくいってる Table View の method を見直して、試行錯誤してようやくわかりました。以下の method が必要だと。

- (NSFetchedResultsController<Item *> *)fetchedResultsController

うーん、悩ましかった。

 

UITabBarController に tab を追加:viewcontrollers の順番を入れ替える方法

UITabBarController にタブを追加ようと、storyboard に UITableView を配置し、segue で接続。いつの間にか、順序を間違えてしまったようで、先に追加していた UITableView が viewcontrollers[1] になってしまった・・・ということに気づかず、画面を新たに設定したら走らせるとエラーになるのでナンジャコリャになってしまったのですが、ようやく原因が特定できた。

順番を変更するにはどうするのかわからなかったのだけど、結局のところ繋ぎ直せば良いということがわかりました。手順はこんな感じです。

  1. storyboard で、UITabBarController を選択し、Show the Connection Inspector を表示。Trigger Segue 部分に接続されている画面が表示されているが、この順序で viewcontrollers 配列に収納されている。今回はつなぎ間違えたので、一旦接続を解除するためバツを押す。
  2. storyboard でもう一度接続。TabBarController からCTRL を押しながら接続したい画面に線を引っ張る。この時、また間違えないように、viewcontrollers 配列に入れたい順序で接続する。
  3. 接続するとどのように接続するか聞かれるので、Relationship, View Controllers を選択する。

このような感じだと。なるほどね。