ObjecTips

Swift & Objective-C で iOS とか macOS とか

2015-01-01から1年間の記事一覧

WatchKit App の表示名

WatchKit App の表示名を変える時の備忘 表示 設定 iPhoneのApple Watchアプリ内 iOSアプリ(親アプリ)のCFBundleName*1 Apple Watchでのアプリ起動時 WatchKit AppのCFBundleName or CFBundleDisplayName*2 iPhone の Apple Watchアプリにはなぜか CFBundl…

Share Extension の ConfigurationViewController を投稿画面のようにブラー表示する

ピンポイントなタイトルだけど Share Extension の実装の際にこれはやっておきたいなという事で。 まずプロジェクトへの Share Extension の追加は省略。 設定が終わると Safari などから Extension を呼び出す事ができる。 とりあえず名前は Test Share Ext…

Swift での NSLocalizedString

Objective-C では NSString *NSLocalizedString(NSString *key, NSString *comment) NSString *NSLocalizedStringFromTable(NSString *key, NSString *tableName, NSString *comment) NSString *NSLocalizedStringFromTableInBundle(NSString *key, NSString…

Swift での Class 取得メソッド

Objective-C で NSObject の Class を取得するには class (クラスメソッドとインスタンスメソッド) classForCorder (インスタンスメソッド) classForKeyedArchiver (インスタンスメソッド) classForKeyedUnarchiver (クラスメソッド) などのメソッドがある。…

Preparing Your App Submission for Apple Watch まとめ

初出がいつか分からないけどとりあえず2015年5月13日時点での以下のまとめ Preparing Your App Submission for Apple Watch - Apple Developer Optimizing Your WatchKit App WatchKitアプリの最適化 Xcode 6, iOS 8.3 SDK を使う Design デザイン ガイドを…

AdMob SDK 7.2.2 変更点

AdMob SDK 7.2.1 を入れて App Store 提出前の Validate を行ったらこんな warning が出た。 The app references non-public selectors in Payload/<BundleName>.app/<ExecutableName>: clientId, screenName, setScreenName: AdMob の最新版をチェックしに行くと早速この問題が解消され</executablename></bundlename>…

Apple Watch の対応言語

Apple Watch 対応アプリをいざ App Store に申請しようとスクリーンショットを準備していて気付いた。 Apple Watch の対応言語は少ない? 日本語表記 母国語表記 日本語 日本語 英語 English フランス語 Français フランス語(カナダ) Français(Canada) ドイ…

Stickies の保存データを取り出す

以前使っていた Mac の Stickies にいろいろとメモが残っていたのでデータを取り出したい。 Mac 自体はHDDが壊れてしまって起動しないがユーザのホームのバックアップは取ってあるという状態なので、Stickies.app を起動して中身を以降する事ができない。 保…

Storyboard で UIViewController の dismiss を設定できるようにする

Storyboard で segue を設定して画面遷移を作っていく時、Modal 表示した ViewController にキャンセルボタンを設置する事がままある。 この時の ViewController への実装は - (IBAction)cancel:(id)sender { [self.presentingViewController dismissViewCon…

Xcode の Fonts & Colors その2

これの続き Xcode の Fonts & Colors - ObjecTips Xcode の Fonts & Colors の設定画面にプリインストールされているテーマファイルは plist形式の .xccolortheme ファイルで、以下の場所に内蔵されている。 /Applications/Xcode.app/Contents/OtherFramewor…

Xcode の Fonts & Colors

Xcode の Fonts & Colors の設定一覧を調べた 太字のところが色とフォントの設定が反映される箇所 Source Editor 適用箇所の例 Plain Text メソッド名、ファンクション名、クラス定義など- (void)method;void func();@interface MyObject : NSObject@impleme…

WatchKit Extension から親アプリを起動した時の挙動

WKInterfaceController の openParentApplication: メソッドから親アプリが起動された際にどのような処理の流れになるのか確認してみた。 確認方法は以下 親アプリとエクステンションの両方に NSLog を仕込む Xcode で WatchKit App をターゲットにしてrunす…

フォトライブラリへの動画保存メソッド まとめ

PHAssetChangeRequest.h (iOS 8以降) + (instancetype)creationRequestForAssetFromVideoAtFileURL:(NSURL *)fileURL; PHPhotoLibrary の performChanges:completionHandler: または performChangesAndWait:error: メソッドと組み合わせて使用する。 ALAsset…

フォトライブラリへの画像保存メソッド まとめ

PHAssetChangeRequest.h (iOS 8以降) + (instancetype)creationRequestForAssetFromImage:(UIImage *)image; + (instancetype)creationRequestForAssetFromImageAtFileURL:(NSURL *)fileURL; PHPhotoLibrary の performChanges:completionHandler: または pe…

iOS 8での位置情報のプライバシーアクセス

iOS 7では CLLocationManager を用いて位置情報を利用する際に自動的にシステムのアラートが表示される。 CLLocationManager *locationManager = [[CLLocationManager alloc] init]; [locationManager startUpdatingLocation]; self.locationManager = locat…

AdMob SDK 7.2.1 変更点

リリースノートはこちら https://developers.google.com/mobile-ads-sdk/rel-notes?hl=ja#ios 以前はiOS シミュレータではデフォルトでテスト広告が出ていたのが実際の広告が表示されるようになった。 シミュレーターでテスト広告を表示するにはテストデバイ…

指紋認証APIの iOS 8.3 での変更点

iOS 8.2 から iOS 8.3 で Touch ID を使った指紋認証APIに微妙な変更があった。 フォールバックボタンの表示 まず iOS 8.2 で以下のコードを呼び出す LAContext *context = [[LAContext alloc] init]; [context evaluatePolicy:LAPolicyDeviceOwnerAuthentic…

WatchKit Development Tips まとめ

Apple Watch の発売に伴って WatchKit Development Tips が公開されてた 2015-04-24 時点のドキュメントまとめ(網羅ではなく適宜省略) WatchKit Development Tips and Best Practices - Apple Developer General Guidance Animate with image sequences. -…

WatchKit のドキュメントに書かれていない事

ドキュメントを読んだ後、実際にコードを書いてみて気付いた事がいくつかあった。 画面読み込み中のインジケーター 完全に静的な画面を表示するだけだとインジケーターは表示されない。 自前の InterfaceController クラスで IBOutlet で何かを接続するとそ…

Apple Watch Programming Guide まとめ その3

これの続き Apple Watch Programming Guide まとめ その2 - ObjecTips Apple Watch Programming Guide: Developing for Apple Watch 2015-03-09 初出バージョンのドキュメントまとめ(網羅ではなく適宜省略) Glances Glance Essentials グランス アプリの重…

Apple Watch Programming Guide まとめ その2

これの続き Apple Watch Programming Guide まとめ - ObjecTips Apple Watch Programming Guide: Developing for Apple Watch 2015-03-09 初出バージョンのドキュメントまとめ(網羅ではなく適宜省略) WatchKit Apps UI Essentials Assembling Your Storybo…

Apple Watch Programming Guide まとめ

Apple Watch Programming Guide: Developing for Apple Watch 2015-03-09 初出バージョンのドキュメントまとめ(網羅ではなく適宜省略) Overview Developing for Apple Watch Apple Watch and Its Paired iPhone Apple Watch と iPhone 3rd party アプリを…

Apple Watch Human Interface Guidelines まとめ

Apple Watch Human Interface Guidelines: Designing for Apple Watch 2015-03-09 初出バージョンのドキュメントのまとめ(網羅ではなく適宜省略) UI Design Basics Designing for Apple Watch App Anatomy Interface Navigation Styles iOS の UINavigatio…

NSViewController の viewWillAppear メソッド

OS X v10.10 の NSViewController に iOS の UIViewController と同じような以下のメソッドが追加された。 - (void)viewWillAppear NS_AVAILABLE_MAC(10_10); - (void)viewDidAppear NS_AVAILABLE_MAC(10_10); - (void)viewWillDisappear NS_AVAILABLE_MAC(1…

Auto Layout の Multiplier の指定方法いろいろ

Auto Layout で Multiplier を指定する時に多いのが View のアスペクト比を指定するケースだと思う。 InterfaceBuilder上で View を選択して、以下から Aspect Ratio の Constraint を追加する。 追加したらその Constraint を選択して、インスペクタで 4:3 …

NSPredicate で UTI を扱う

NSPredicate の predicateWithFormat: のフォーマット内で UTI-CONFORMS-TO という評価式が使える。 これは UTTypeConformsTo() ファンクションと同じロジックで UTI を判定に用いる事ができて、例えばファイル情報のリストに対して UTI-CONFORMS-TO で kUTT…

iOS 8.0, OS X v10.10 で追加された UTI

なぜか今になって割と追加されてた。 extern const CFStringRef kUTTypeURLBookmarkData __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0); extern const CFStringRef kUTTypeDelimitedText __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0); extern…

NSPredicate で正規表現

NSPredicate と正規表現の組み合わせはちょっとややこしい。 例えば、正規表現で数字列を検出する場合 \d+ を用いる。 NSString でこの文字列を扱う場合 \ がエスケープ文字なので、これをこのまま NSString に入れると Unknown escape sequence '\d' という…

NSPredicate でワイルドカード

predicateWithFormat: でワイルドカードを使う事ができる。 1つ目はの a*e は先頭の文字が a で間に何文字か挟んで(0文字でもOK)末尾の文字が e の文字列が条件に合致する。 2つ目の a??le は先頭の文字が a で間に2文字挟んで末尾の文字が le の文字列が…

Xcode の不可視文字 (Invisible Characters)

Xcode に限らず、エディタで空白の whitespace を表示するオプションがある。 Xcode の場合、メニューの Editor > Show Invisibles から設定可能。 この時表示されるこれ ␣ をUnicode表で調べたみたところ OPEN BOX Unicode U+2423 UTF-8 E2 90 A3 というや…