忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。




iPhoneからMac経由でインターネット接続

わか

iPhoneからMac経由でインターネット接続をやってみると思いのほか簡単に接続できました。

Mac側の設定
1. システム環境設定
2. 共有
3. インターネット共有
 共有する接続経路:Ethernet
 相手のコンピュータが使用するポート:Wi-Fi
 Wi-Fiオプションでセキュリティとパスワードを設定する

後はiPhone側でMacに接続すれば良いです。
ちなみに共有する接続経路相手のコンピュータが使用するポート両方にWi-Fiは設定できません。
共有する接続経路はEthernetにしなければなりません。
あたりまえですが、Wi-Fi繋がるならiPhoneそちらで繋げろということでしょう。

拍手[0回]


SSKeyChainでエラーコード-34018で失敗

わか

SSKeyChainライブラリ内のSecItemCopyMatchingにてエラーコード-34018が発生しました。
このエラーが発生すると保存してある値を取得できません
調査したところ、Xcodeから実機を動かした場合にのみ発生する不具合のようです。実機から直接動かした際には発生しないようです。

デバッグをしていると、たまに発生するので驚きます。早く直ってほしいです。。。

拍手[0回]


長いループ処理では@autoreleasepool{}が必要

わか

ARC環境において、whileやforで長い処理を行った場合は@autoreleasepool{}を使用した方が良いです。なぜなら解放待ちのインスタンスが溜まってしまいメモリリークしてしまうからです。
忘れがちになりそうなので、備忘録として記載します。

拍手[0回]


NSURLConnectionのステータスコード401について

わか

iOS8.2

NSURLConnectionのレスポンスを受信した際の認証エラー時にステータスコード401を受け取るはずが、0になっていました。
Appleの公式ドキュメント読むと、NSURLConnection認証エラー時にはエラーコードでNSURLErrorUserCancelledAuthentication(-1012)を受け取ると記載されています。

私の場合、認証エラー時にはステータスコード401を受け取りたかったのですがNSURLConnectionでは何故か無理なようです。この問題はかなり昔から存在し、ずっと放置されているようです。
対策としてはNSURLConnectionを使用せず、他のものを自前で用意するしかないようです。


拍手[0回]



UIAlertViewにてメモリリーク発生(iOS8)

わか

iOS8にてUIAlertViewが非推奨になりましたが動作自体は問題ないためそのまま使用していました。しかし、instrumentsにて確認を行ったところメモリリークしていました。実行するたびに毎回32byteリークするため、まだ使用している人は他の手段に移行したほうが良さそうです。

拍手[1回]


UIGraphicsBeginImageContextはスレッドセーフ

わか

ネットで調査していると古い情報もあって混乱しがちです。
そのうちの一つに、UIGraphicsBeginImageContextは昔はスレッドセーフではなく、メインスレッドで呼びださなければならなかったようです。なのでその旨記載してあるサイトが結構存在し、混乱しがちです。
実際にAppleの公式ドキュメントを読めば「This function may be called from any thread of your app.」と記載されており、全てのスレッドから呼び出せると記載されています。
備忘録でした。

拍手[0回]


CGContextDrawPDFPageでメモリリーク発生

わか

CGContextDrawPDFPageを使用するとpdfファイルの内の画像をコンテキストにレンダリングできます。iOS8.4にて使用したところ、必ずメモリリークする現象が発生しました。
CGPDFPageReleaseやCGPDFDocumentReleaseを使用してメモリを解放していますが発生するようです。いろいろ調査しましたが、直らず。

iOS6.0未満ではメモリリークが発生する不具合があったそうですが、今は直っているとの情報もあります。またiOS8.0以上で同様の現象が他の人も発生しているようですが、対処方法に関しては記載されていませんでした。
とりあえずAppleに不具合報告して放置中です。。。

拍手[0回]