flyingbirdのiPhoneアプリ開発記録

- PolyRhythmの中の人がiPhoneアプリ開発中に思ったことを記録するブログです -

TwitterApiのカンマ・・・

TwitterApiを叩くとき・・・
例えば、ttps://api.twitter.com/1.1/users/lookup.jsonとか。
クエリにuser_id=xxx,xxx,xxx,xxxとかくっつけるんだけど、
URLエンコードする際にちょっとした癖が・・・
通常カンマ","は"%2C"にエンコードすれば良いのだが、
oauth_signatureを作るときのエンコードは"%252C"である必要があるっぽい。
Objective-Cの場合はCFURLCreateStringByAddingPercentEscapesで
2回エンコードを書けるとそれになってたっぽい。
SwiftでaddingPercentEncodingを使った時は2回エンコードかけても、
"%2C"のまま。当然だけど。。。
そもそもまぐれでうまく行ってたっぽい。
なにこれ・・・

【Swift】Module compiled with Swift 3.0 cannot be imported in Swift 3.0.1

エラー発生

  • Xcodeをver8からver8.1に上げたら掲題のエラーが起き始めた。
    Clean→Buildも効果が無かった。。。と思ったら、Cleanには
    普通のCleanと、今までのBuildで作られた中間ファイル等も
    消してくれる、BuildフォルダのCleanというのがあるらしい。
    XcodeのメニューからCleanを選択するときにOptionボタンを押すと、
    Cleanのメニューが Clean Build Folder...に変わるので、
    そいつを実行すると、エラーが解消された。
    やっぱりエラーの時はどんなエラーが起きたかだけじゃなくて、
    何をすべきかを表現して欲しいとつくづく思う今日このごろ・・・


エラー内容

Module compiled with Swift 3.0 cannot be imported in Swift 3.0.1...


参考サイト

ez-net.jp

【Swift】Swift3のsubstring

使いづらい

  • Swift3の話・・・とある文字列から、所謂、どこから何文字って抜きたいときって、Int使って簡単に出来ないのかな〜〜
    とりあえず、以s下のやり方で落ち着こうとしているのだが。。。遠回しやな〜〜
let a = "abcdefghijklmnopqrstuvwxyz"
let from = a.index(a.startIndex, offsetBy: 5)
let to = a.index(from, offsetBy: 10)
print(a.substring(with: Range(from..<to)))
// fghijklmno