Day: April 11, 2016

Swift:並行処理のタタリか。

webページを読み込んでいる間にほかの操作をすると、読み書きがおかしくなる。

ネットワークの速度やVPNサーバーの状況により、webページの読み込みがなかなか終わらないときがあります。

読み込み完了のつもりでwebViewを書いてしまったり、ユーザーの次の操作で違うwebページを書き込むケースがあることが判明しました。待ち時間を設定してみたのですが、うまく行かないので、webページの読み込み終了を判断して、ユーザーの操作を保留させることにしました。

しかし、書き込み途中で次のwebページを書き込む問題は、バッファの混在なのでふたつに分けなければいけません。やれやれ。
➡️この考えは少し安易かもしれません。どのみち、読み込んでいたものが.webarchiveであれば、修正の有無に関わらずファイルを保存するようにすべきなので、こうすれば、webページを読み込む前に必ず.webarchiveの保存がされることになります。

「多分」なのですが、このとき、書き込み中であることが何らかの形でわかるか、自動制御できればいいはずです。

整理していくと、自動でsaveするケースはありえない。

1. 🔒URL指示によるwebページ読み込み:

  • 初回のみ➡️URL読み込み完了有無チェック

2. 🔎検索によるwebページ読み込み:

  • 任意➡️URL読み込み完了有無チェック

3. 🌎リンクのクリック:

  • 任意➡️URL読み込み完了有無チェック

4. 🎾webarchiveへの書き込み:

  • webページを登録するとき
  • 編集済みページをアップデートするとき(いわゆるsave)

5. 🎾webarchiveの読み込み:

  • 任意

6. 🎾Reload URL / Save (initialize)

7. 🎾Undo

8. 🎾Back to the original URL

Swift:通信でエラー/ATS?

通信でエラーが出始めたのですが、.entitlementsを修正したら良くなりました。

Screenshot 2016-04-11 06.28.56

ATS(NSAppTransportSecurity)を追加すると、コンパイルが通らなくなることが判明しました。Sandboxとは、不整合がある?

private VPNを使っていてUSに接続すればOK、Australiaだと次のエラーが発生します。いずれ原因長が必要です。

2016-04-11 06:39:04.657 MesaClip[7764:2525753] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)