2015-01-01から1年間の記事一覧
いろいろデバッグしていて OSType や FourCharCode を扱う事があるので備忘。 OS Xだと Foundation.framework に NSFileTypeForHFSTypeCode という便利な関数が用意されている。 この関数はシングルクォーテーションで囲われた文字列を生成する。 OSType typ…
サンプルとして UINavigationController の rootViewController に UITableViewController を設定したものを使う。 UINavigationItem に適当にボタンを設定して UITableView の tableViewHeader に UIImageView を aspectToFill で入れて画像を設定。 Storyb…
Swfit で書いたアプリを配信すると起動時にクラッシュするケースがある。 Apple の以下のドキュメントで言及されている。 原因は証明書で、iOS 8とSwift 登場以後の証明書には 部署 Organizational Unit (OU) が付与されるようになっていて、これが無い証明…
AppleからiOS 9の言語の identifier の変更についてドキュメントが公開されていた。 NSLocale.preferredLanguages() が返す値がiOS 8以前とiOS 9以降とで異なっていて、 以前は en だったものが en-US というように言語 Language と地域 Region がハイフンで…
これまでの記事 AppleScript の JavaScript for Automation で Excel のセルの値を取得する - ObjecTips AppleScript の JavaScript for Automation でテキストをファイルに保存する - ObjecTips AppleScript の JavaScript for Automation でテキストをファ…
前回の記事 AppleScript の JavaScript for Automation でテキストをファイルに保存する - ObjecTips 前回は AppleScript の StandardAdditions を使ってテキストファイルの書き出し保存を行ったが、 まずどんな関数があるのか、そして関数の引数や実行時の…
StandardAdditions を使用する 保存ダイアログを表示するには StandardAdditions ライブラリに入っている chooseFileName 関数を使う。 JavaScript for Automation では StandardAdditions を使う前に includeStandardAdditions を有効にしてこのライブラリ…
環境 OS X 10.10.5, Microsoft Office 2011, Microsoft Excel 14.5.4 AppleScript の JavaScript for Automation を使用 準備 スクリプトエディタを起動 ライブラリに Excel を追加して AppleScript のリファレンスライブラリを参照できるようにする。 エデ…
クラッシュレポートにいくつか Could not load NIB in bundle のエラーが上がってきていたので調べてみた。 発生しているのはいずれも iOS 8.0.2 で機種は iPad Air, iPad mini 2 が確認された。 アプリ自体は iPhone のみ対応しているアプリで、iPhone では…
AdMob のリリースノートのページをGoogle検索経由で探して開くと以下のURLが開く。 https://developers.google.com/admob/ios/rel-notes?hl=ja 最新版は 7.3.1 か(現時点)。なんて思ってたら実はロケールを en にして英語表示にすると 7.4.0, 7.4.1 がリリ…
AVAudioPlayer には NSURL で初期化を行う以下のメソッドがある。 - (instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError; AVPlayer にも NSURL で初期化を行う以下のメソッドがある。 + (id)playerWithURL:(NSURL *)URL; - (inst…
AVAudioRecorder を生成後、録音を開始しないまま deleteRecording メソッドを呼ぶとクラッシュしたりエラーが出たりする。 以下のコードで試せる。 iOS 8.2, iOS 8.3 ではクラッシュ iOS 9.0 β ではコンソールに以下のエラーが出たがクラッシュはしなかった…
iOS 9で追加されたテキスト領域の矩形を検出できる CITextFeature に iOS 9 β4 で subFeatures というプロパティが追加された。 @property (readonly) NSArray *subFeatures; この subFeatures プロパティは検出した領域内に含まれる各文字の領域を示す CITe…
iOS 9 β4で WKInterfaceDevice にデバイス情報を取得するメソッドが追加された。 追加されたメソッドは以下で取得できる情報は iOS の UIDevice に存在する同名のメソッドと同じ。 @property(nonatomic, readonly, copy) NSString *systemVersion WK_AVAILAB…
iOS 9 β3で PHAssetCollectionSubtypeSmartAlbumSelfPortraits NS_AVAILABLE_IOS(9_0) = 210 が追加された。 以前紹介したスクリーンショット画像の一覧取得は Photos.framework でスクリーンショット画像の一覧を取得する - ObjecTips PHAssetMediaSubtype …
- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; // some implements } と - (void)viewWillDisappear:(BOOL)animated { // some implements [super viewWillDisappear:animated]; } どちらが良いの?という議題 Appleのド…
iOS 8の self-sizing cell で自動で高さを調整してくれるように実装したところちょっと問題が。 まずセルのレイアウトは以下 上に UILabel, 下に UITextView を配置してラベルとテキストビューの間は0px ラベルとテキストビューそれぞれのセルの contentView…
まず UITableView のセルのメニュー表示の実装方法はこちら UITableView のセル選択時にメニューを表示する - ObjecTips 前回の方法では UITableViewDelegate を使ってメニュー表示をする時と同じ標準的な位置にメニューが表示される。 セルへのメニューの表…
前回は UITableViewDelegate を使って簡単にメニュー表示をする方法について書いた。 UITableView のセルの Copy Paste メニューを表示する - ObjecTips この方法はセルを長押しした時にメニューを表示する事ができるが、セルをタップして選択したらすぐにメ…
UITableView にはセルの Copy Paste メニューを簡単に実装できる delegate メソッドが用意されている。 // Copy/Paste. All three methods must be implemented by the delegate. - (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPa…
デフォルトの EKSource iOS にはデフォルトで2つのデフォルトのソース EKSource が用意されている。 1つはローカルのカレンダー(iCloud同期を設定しない場合)。 もう1つは EventKit からはアクセスできない誕生日用のカレンダー。 このあたりの詳しい話は…
よく定数を忘れるので備忘 float の誤差を考慮して等価比較するには FLT_EPSILON を使う double のための DBL_EPSILON long double のための LDBL_EPSILON も用意されている。 例えば float a が float b とイコールであるかをチェックするには a と b との…
iOS 9 β2で PHAssetMediaSubtypePhotoScreenshot NS_AVAILABLE_IOS(9_0) = (1UL << 2) が追加された。 これを使えば写真ライブラリからスクリーンショット画像のみを取得したり、逆にスクリーンショットを排除した画像一覧を取得する事ができる。 コードは以…
NSUserDefaults には NSUserDefaultsDidChangeNotification という通知が用意されていて変更通知を受け取る事ができる。 この通知は userInfo が nil になっていて、何が変更されたのか変更の詳細を知る事ができない。 NSUserDefaults の何のキーが変更され…
前回の内容は以下 iOS 8リマインダーアプリの挙動調査 - ObjecTips 優先順位の !!! は UITextView の中に含まれている事が分かった。 これをコピーすると何が入っているのか。 UIPasteboard を使って中身を見てみた。 すると pasteboardTypes には ( "com.ap…
リマインダーアプリの優先順位の表示を参考にするため、どのように実装されているのか調べてみた。 優先順位の !!! の部分は attributedString もしくは attachment の画像として UITextView の中に一緒に入れられているっぽい。 しかしテキスト編集時にこの…
dispatch/object.h に以下のような定義がある。 typedef void (^dispatch_block_t)(void); 自前の実装の中で - (void)test { void (^blockName)(void) = ^{ }; } @interface MyObject : NSObject @property (nonatomic, copy) void (^blockName)(void); @end…
ARC環境では retain count を取得する retainCountメソッドと手動で retain release を行う retain release メソッドが使えなくなった。 でもいつどこでオブジェクトが保持され解放されているかオブジェクトの retain count を調査したい時がある。 そういう…
まだWWDCのネットワーク系のビデオを見ていないので紹介されているか分からないけど、たぶんされていないであろう CoreTelephony の変更点について。 関連記事は以下 iOS 8.3 to iOS 9.0 API Differences Core Image - ObjecTips iOS 8.3 to iOS 9.0 API Dif…
iOS 9 での CoreLocation の変更点 関連記事は以下 iOS 8.3 to iOS 9.0 API Differences Core Image - ObjecTips iOS 8.3 to iOS 9.0 API Differences オーディオ周り - ObjecTips iOS 8.3 to iOS 9.0 API Differences ネットワークとWeb周り - ObjecTips iO…