ObjecTips

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

2015-05-01から1ヶ月間の記事一覧

リマインダーの優先順位

EKReminder の priority プロパティ @property(nonatomic) NSInteger priority; なぜか現時点でまだドキュメントに記載が無いが、ヘッダファイルには定義が載っている。 ヘッダファイルのコメントによれば priority の値は最高が1、最小が9になっていてRFC 5…

Fabric Crashlytics のアップデート

利用可能なSDKのアップデートがあるとメニューバーのアイコンで教えてくれる。 メニューバーアイコンから Fabric を開くと Update ボタンが表示されている。 アップデートを実行するとプロジェクトをビルドするよう促される。 プロジェクトをビルドすると Fa…

UIDeviceFamily 一覧

ビルドしたアプリの Info.plist 内に設定されている UIDeviceFamily キーは開発者が明示的に設定するものでは無く、ビルド時に Xcode によって自動で設定される。 公式にドキュメントに載っているのは以下 値 デバイス 1 iPhone, iPod touch 2 iPad iPhone, …

Share Extension の NavigationItem をカスタマイズする

Share Extension のテンプレートで作成される SLComposeServiceViewController のサブクラスを自前のコントローラクラスとして、コード内では self として説明する。 Share Extension のデフォルトの表示が以下 self.title = @"Title"; これで NavigationBar…

AppleScript でウィンドウを閉じる

アプリケーションを指定して windows で全てのウィンドウを閉じる。 ウィンドウ指定で閉じる場合は window index の形式でウィンドウを指定。 index 1で最前のウィンドウを指定、index 2 で最前から1つ後ろのウィンドウを指定して閉じる。

AppleScript でアプリケーションを起動・終了する

AppleScript でのアプリケーションの基本操作 アプリケーションの起動には run と activate の2種類があって run は単にアプリケーションを起動するだけ。 activate はアプリケーションを起動してアクティブにする。Dock クリックでのアプリケーション起動と…

StoreKit の iOS 8.3 での変更点

iOS 8.3 で StoreKit に若干の変更があった。いずれも役に立つ変更。 ファミリー共有の Ask to Buy のテストが可能に SKPayment @property(nonatomic, readonly) BOOL simulatesAskToBuyInSandbox NS_AVAILABLE_IOS(8_3); SKMutablePayment @property(nonato…

Apple Remote Desktop でコマンドでログイン

Apple Remote Desktop で Unix コマンドを送信 の機能を使って複数台マシンを一気にログインさせる方法。 まず システム環境設定>ユーザとグループ>ログインオプション で ログイン時の表示をユーザのリストから名前とパスワードに変更。 これでログイン画面…

Apple Watch の対応言語 その2

前記事は以下 Apple Watch の対応言語 - ObjecTips この記事から程なくして Watch OS 1.0.1 で対応言語が増えた。 追加された言語は以下 日本語表記 母国語表記 オランダ語 Nederlands ポルトガル語(ブラジル) Português (Brasil) デンマーク語 Dansk スェ…

発着信と通話の開始停止を検出する

前回に続き CoreTelephony のネタ 携帯キャリアの情報を取得する - ObjecTips CoreTelephony を使って電話の発着信と通話の開始停止を検出できる。 コールバックはアプリがアクティブな時に受け取れる。 CTCallStateIncoming 電話がかかってきた時 CTCallSta…

携帯キャリアの情報を取得する

CoreTelephony.framework を使えばできるらしい。知らなかった。 CTTelephonyNetworkInfo をインスタンス化して subscriberCellularProvider メソッドを呼べば CTCarrier でキャリア情報が取得できる。 CTCattier にはキャリア情報に関するいくつかのプロパ…

NSFormatter クラス まとめ

Framework クラス OS X iOS 用途 Foundation NSNumberFormatter 10.0 2.0 数値 Foundation NSDateFormatter 10.0 2.0 日付 Foundation NSByteCountFormatter 10.8 6.0 Byte,KB,MB,GB 等 MapKit MKDistanceFormatter 10.9 7.0 メートル、ヤード、キロ 等 Foun…

Photos.framework でカメラロールを取得する

Photos.framework でカメラロールを取得する方法が分かり辛かったので備忘 fetchAssetCollectionsWithType:subtype:options: メソッドの引数の type で PHAssetCollectionTypeAlbum を指定した場合、写真アプリで作成したものとiTunesで同期したアルバムの一…

スクリーンショットを検出する

iPhone のホームボタンとロックボタン同時押しでのスクリーンショットを検出する UIApplicationUserDidTakeScreenshotNotification が iOS 7 で追加されている。 これを使えばスクリーンショットを検出できる。 [[NSNotificationCenter defaultCenter] addOb…

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 シミュレータではデフォルトでテスト広告が出ていたのが実際の広告が表示されるようになった。 シミュレーターでテスト広告を表示するにはテストデバイ…