iTunes: 曲を指定して Genius playlist を作成

iTunes 12.9 に update したらなんでかしばらくできなくなっていたのだけど、1 週間ぐらいしたらまたできるようになったので、方法を記しておこう。できなかったのは多分 update に伴い genius 用のデータを再作成したからなんですかね。

この機能、自分の好きな曲を基にして playlist を作成してくれるというなんとも便利な機能。やり方はすごい簡単。

  1. 手持ちの曲から好きな曲を選択し CTRL + クリック
  2. context menu から、Genius のおすすめ... → プレイリストとして保存 を選択

こうすると、playlist が作成される。曲の数は 25-100 曲まで 25 刻み。だいたい 50 曲ぐらいにして iPhone に転送するとドライブの時なんか重宝する。

さらに便利なのが、一度作ったプレイリストは更新できるということ。やり方は更新ボタンを押すだけ。選択した曲を基準に作成するプレイリストなので、更新前後でよく似通った曲が選ばれることになりますが、それでも、飽きは随分軽減できる。

AI が騒がれる随分前から使えるみたいで、先見性があるなと。機能に最近気付いて勿体無いことしたな。

 

 

touch した object を判別するには・・・

object をタッチして移動するには、まず、object に対して .userinteraction = YES のプロパティを設定する。その後、touchMoved などの method を実装してくことになるのだけれど、touch した object によって動作を分けたい時、touch した object を判別しないとならない。さて、その判別はどうするんだ?結論は以下の通り。

    UITouch* touch = [touches anyObject];

    if ([touch.view isEqual:_selectedColor])

    {

説明していませんでしたが _selectedColor は、UIImageView のインスタンス

まず、touches anyObject で UITouch のインスタンスを生成。タッチした object との比較には、isEqual を使用する。ややハマったのは、isEqual は(当然ながら)同じ型のものを比較するため、touch isEqual: としてもダメで、UIView と比較したいなら、例示の通り.view などを付けて同じ型同士で比較するようにしないとならない。

という訳で、これで、object によって動作を分けることもできるようになったと。

アメスピターコイズとペリック

紙巻きタバコは先日の値上げのせいで高くなってしまい、シャグ +ヴェポライザー、たまに手巻きに完全移行したいところなんですが、外出する時はどうしても紙巻を買ってしまう。理由は、出先でシャグ を詰め替えるのが厄介なこと(見た目も怪しい)。そういった不満を解消するであろうチューブ状のシャグ を詰める菅が売ってて試しました。なんとなく味が落ちるのであまり使いたくない。

紙のまずさは目を瞑るとして、紙巻のいいところはすぐ吸えるし味が安定していること。専らアメスピターコイズとペリックを代わる代わる吸っている感じ。ところでターコイズとペリックはどう違うんだということで、備忘のため記しておこう。

アメスピターコイズはヴァージニアの香りが濃厚で、吸っててすごいうまい。ヴァージニアの甘い香りと程よい辛味、そして豊富な煙量のせいもあり癖になる。ただ、ヴァージニアってどの銘柄にも言えるのですが、吸い続けると飽きる。そんな時はペリックを買ってみるとまた違った味わいを楽しめる。

ペリックも基本ヴァージニアなのですが、そこに酸味のような香りが混ざってきて、総合すると複雑な味を感じます。その分ヴァージニア感が弱く、本数が進むと、あ、もうちょっとヴァージニア感じたいな、となり、次はターコイズを買ってしまうと。

ただねぇ、一箱 520 円って高すぎだ。加湿できる環境ならわかばも悪くない。ヴァージニアを満喫できる。poor man's アメスピだと思う。

 

@selector() で指定する method で、引数がある場合

selector 内で method を指定する時、引数として何か渡したい時はどうするか。引数が 1 つしかないなら、“:”を書くだけで OK。次のような感じ・・・

    UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImageView:)];

 

実際に、selector で指定している method はどうなっているのかというと、次のような感じ・・・

- (void) tapImageView:(id)tapping

 

selector 内では、実引数を書く必要がないのがなんともわかりにくいところなのですが、これでうまく動くので、objective-c の言語仕様ということで覚えておきます。

 

ちなみに、method で指定した tapping の型は魔法の id としましたが、より丁寧に書くなら、UITouch* になると。

 

GestureRecognizer を storyboard で設定するには・・・

GestureRecognizer の storyboard での設定方法。我流でやってみてもうまくいかない。まずは code を書いてみて、その後 storyboard で設定してみたらうまくいった。code と同等なことを storyboard に実装すればいいのだと。こういう試行錯誤は後になってから忘れなくていいかも。

コードで書くとこんな感じ:

    UILongPressGestureRecognizer* longPressRecognize = [[UILongPressGestureRecognizer alloc]

                                                        initWithTarget:self

                                                        action:@selector( imageLongPress )];

    longPressRecognize.minimumPressDuration = 0.33f;

    [_cookingImage addGestureRecognizer:longPressRecognize];

 

要は、UILongPressRecognizer のインスタンスを生成し、効用をもたらしたい object に addGestureRecognizer する。

これを踏まえた上で、storyboard を使った方法はこんな感じ。

  1. LongPressRecognizer を View に乗っける。すると、View の上に First Responder とかがあるところに、gesture recognizer のアイコンが表示される。
  2. gesture recognizer のアイコンから反応してほしい object に線を引いて、delegate を設定。
  3. gesture recognizer から.h に引っ張ってきて action を追加

ちなみに、gesture recognizer のプロパティも storyboard 上で設定できて、attribute inspector に設定できる項目が載っている。Long Press なら default は 0.5 であった。なんとなく、0.33 に変更した。

表現方法が違うけれども、結局、code からでも storyboard からでも設定できるんだなぁと。で、どちらがいいのかというと・・・うーん、微妙。code からの方がぱっと見、わかりやすい。でも、.m に記述が増えてくると管理がままならなくなってくるので、storyboard を使って分散化した方がいいのかな。

 

UIImageView の画像をピンチで拡大するには・・・

UIImageView に画像に photo library から画像を選択表示し、その画像をピンチで拡大するにはどうするか。調べてみたらできた。次のような感じ。

  1. storyboard に UIScrollView を配置
  2. UIScrollView の上に UIImageView を配置
  3. UIScrollViewDelegate プロトコル使用 .h で宣言
  4. UIScrollView のインスタンスdelegate 指定
  5. UIScrollView の最小倍率(.minimumZoomScale)最大倍率(.maximumZoomScale)設定
  6. .m に - (UIView*)viewForZoomingInScrollView method を作成

UIScrollView を使うとは知らなかった・・・

ヴェポライザーでシャグ :Mac Baren Pure

Mac Baren は Choice の親ブランドということでやや警戒。Choice はどれも苦手であれを吸うと頭が痛くなる。なんだろう、着香する際の添加物が合わないのかな、共通して感じる嫌な匂いがあって、ヴェポライザーだと顕著ですごい頭痛になる。そんな訳で、やや敬遠と警戒していたのですが、American Blend はキセルでやるとすごく旨いし、ひょっとして他にも美味い銘柄があるのでは?と気になることも確か。

調べてみると Pure という銘柄があり、無添加で水以外何も使用しないを売りにしているらしい。これは気になる。Che 赤が切れたので、早速買ってみた、やや、恐る恐る・・・

ヴェポライザーでの印象は悪くないに尽きる。シャグ の匂いからしバージニアであろうことは想像がついたのだが、Pepe に比べて格段に甘く、香りもバージニアそのもの。キック感はやや弱く苦味も少ないためちょっと物足りないが、香りが豊かなので十分楽しめる。

以前、Raw のシャグが気に入っててハマった時期もあったんだけど、高すぎるのでやめていた。これ、包装の色、味ともによく似ている。値段を比較すると300 円ぐらい違って、Pure の方が断然安価。Poor man's Raw organic と言った感。さらに調べてみたら、Raw のシャグ は Mac Baren が製造しているらしいので、なるほど、包装、葉のカット具合がよく似ているんだなと。この包装、巻きが長くていいんだよね。ひょっとして、Raw は葉のいい部分使ってて、余ったのを pure にしているとか?丁度、わかばみたいな感じで・・・などと邪推する始末。

手巻きの味も悪くなくてすごい甘くて美味しい。バージニアの中でも甘いのを使っている感じ。ヴェポで常喫、たまに手巻きみたいな使い方ができていいね。