[iOS8] NSObjectに新プロパティ4つ

2014年9月22日月曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

iOS8ではNSObjectに4つのプロパティが新規に追加された。

NSObject.h
@property (readonly) NSUInteger hash;

@property (readonly) Class superclass;
 :
@property (readonly, copy) NSString *description;
@optional
@property (readonly, copy) NSString *debugDescription;

正確に言うと情報が増えたわけではなく、従来メソッドだったものが readonlyプロパティに変更された。

iOS7の時はこんな感じ。
- (NSUInteger)hash;

- (Class)superclass;
 :
- (NSString *)description;
@optional
- (NSString *)debugDescription;


通常は問題にならないが class_copyPropertyList()を使っていると話が違ってくる。iOS7までは含まれなかったこれらのプロパティが取得できることに注意が必要となる。自分の場合、iOS7の時にエンコードして作成したアーカイブファイルを iOS8でデコードする時にこれが原因で失敗した。
最初はアーカイブの互換性が無くなったかと思い少々びっくりしたが。

アプリで使っていたライブラリ(自作)はこれ。


class_copyPropertyList()でプロパティ名を取得して、それを使ってNSCoding準拠のエンコード/デコードを行うライブラリ。class_copyPropertyList()で hash/superclass/description/debugDescriptionと予期しないプロパティ(しかもreadonly)を拾ってきたことが原因でデコードに失敗していた。対処としてはクラスが NSObjectの場合はclass_copyPropertyList()で拾ってきたプロパティを無視するようにした。対処としてはこの4つのプロパティ名が来た時は無視するようにした。

(補足)とは言っても class_copyPropertyList()を単純に呼び出しても自クラスで定義したプロパティしか返らない。再帰的に親クラスへ遡って NSObjectに到達するケースのみが問題になりうる。LKCodingObjectはまさにそのケース。最新版(1.3.1)では既にこの問題は対応済み。
→ どうもそうではないようだ。


(参考)
Retrieving property list of a class in iOS

NSObject has some "new" properties in iOS 8

【StackOne】ビデオ投稿は想像以上に面白くてEvernoteの使い方を変えるかも(新バージョン1.5リリース)

2014年9月16日火曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加


エバーノート投稿アプリ【StackOne】の最新バージョン 1.5 がリリースされました。
目玉はなんといっても「ビデオ投稿」です。

バージョン1.5の変更点

・ビデオ録画と投稿が可能になった
・カメラロールから動画を選択して投稿が可能になった
・ヘッダ、フッタのテキストの強弱が選択可能になった(標準/薄め/強め/強調)
・アイコンを始めとしたいくつかのデザインを変更した




ビデオ投稿


ビデオ撮影は左上のアイコンから。

アイコンをクリックするとビデオ撮影モードになる。

撮影後は今までと同じ。必要ならメモ書いて、送信をタップ、終わり。
送信はバックグラウンドで行われる(右上の送信BOXで状態を確認できる)。

送った動画はサムネイル付きで見られる。以下は Mac版Evernoteでの見え方。
動画は QuickLookですぐ見られる。

iPhone版Evernoteでの見え方。
同じくその場で動画再生できる。

設定項目。「ルール」での個別設定がもちろん可能。例えばデフォルト設定では高品質だが、特定の「ルール」だけ低品質かつ最長5秒なんてのも簡単にできる。
最大時間は30秒を上限にしてある。これは今後様子を見ながら増加させる予定。

あとユニークなのは「すぐに撮影を開始する」これをONにするとアイコンが変わる。
これがONだとビデオアイコンを押してからすぐに撮影が開始される。撮影開始ボタンのタップが不要。これが意外に便利。

撮影の他、カメラロールからの動画取り込みも可能。


ヘッダ・フッタのテキスト


標準 / 薄め / 強め / 強調 から選べるようになった。ヘッダ / フッタごとはもちろんルール個別での設定も可能。

Mac版Evernoteでの見え方。



- - - -

エバーノートへのビデオ投稿は想像以上に面白くて良く使うようになった。写真だけでは残せない音や臨場感が後から見返す時に楽しい。





人気の投稿(過去 30日間)