[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での見え方。



- - - -

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





【StackOne】アイコンボツ案(アプリのできるまで)

2014年8月31日日曜日 | Published in | 0 コメント

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

いろいろやったということで。









決定はこれ

【StackOne】予約語一覧表

2014年8月30日土曜日 | Published in | 0 コメント

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

StackOneで使える予約語の一覧を公開。日本・日本語以外にも対応しているので、値によっては他の予約語と同じ値を返すものや、値が無いもの(空)がある。

日時


意味タグ
日付%date2014/8/30
日付 (ショートスタイル)%date12014/8/30
日付 (ミディアムスタイル)%date22014/8/30
日付 (ロングスタイル)%date32014年8月30日
日付 (フルスタイル)%date42014年8月30日土曜日
時刻%time20:04
時刻 (ショートスタイル)%time120:04
時刻 (ミディアムスタイル)%time220:04:09
時刻 (ロングスタイル)%time320:04:09 JST
時刻 (フルスタイル)%time420時04分09秒 日本標準時
%y2014
%yy14
%yyyy2014
%M8
%MM08
%MMM8月
%MMMM8月
%d30
%dd30
曜日%eee
曜日%eeee土曜日
%h8
%hh08
%k20
%kk20
%H20
%HH20
%m4
%mm04
%s9
%ss09
午前/午後%a午後
タイムゾーン%zzzJST
タイムゾーン%zzzz日本標準時
タイムゾーン%ZZZ900
タイムゾーン%ZZZZGMT+09:00


位置情報


意味タグ
住所%address東京都 中央区日本橋9丁目101番3号
緯度%latitude35.681382.
経度%longitude139.766084.
地図リンク%map<a href="http://maps.google.com/maps?q=地図@35.681382,139.766084&z=16">地図</a>


住所


意味タグ
市区町村%addr.Citry東京都中央区
%addr.Country日本
国コード%addr.CountryCodeJP
場所名%addr.Name日本橋9丁目101番3号
郵便番号拡張%addr.PostCodeExtension
都道府県%addr.State東京都
番地%addr.Street日本橋9丁目101番3号
行政区%addr.SubAdministrativeArea
%addr.SubLocality日本橋
番地%addr.SubThoroughfare101番3号
町丁%addr.Thoroughfare日本橋9丁目
%addr.ZIP〒103-0123


- - - -

StackOne活用方法の紹介記事。旅行の写真に一言添えてエバーノートに記録。いいね。






新作アプリをリリースしました【スーパーの電卓 買い物さん】

2014年8月21日木曜日 | Published in | 0 コメント

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



【スーパーの電卓 買い物さん】
iPhone専用 / 無料

「カゴの中身はいくら?」
「予算1000円だけどあといくら買える?」(もちろん消費税も考慮して)
「これをやめたら、あれを買えるかな?」

買物専用の電卓を作りました。
ただ、ただ、金額を入れるだけで計算完了です。
何も難しい操作は要りません。ただ入れるだけでいいのです。

特徴
・簡単入力でさくさく計算
・予算設定で、あといくら買えるか一目瞭然
・タイムセールの%割引に対応
・強力な消費税対応(内税・外税、精算方式に切り捨て方法まで)
・便利な買物リスト
・買物スキルを磨く、買物スコアに買物レベル(ゲーム感覚)

特に便利なのが「あといくら」。例えば予算 1,000円と設定しておけば、予算内で買える金額がひと目でわかります。もちろん消費税が考慮されているのでレジに行ったら消費税分が予算オーバー、なんてことはありません。予算設定は意外にハマる機能で、あーでもないこーでもないと試行錯誤が繰り返していくと買い物がゲームみたいな感覚に。何よりも予算ぴったりに買い物ができた時は結構うれしかったりします。

毎日の買い物がきっと楽しくなる「買い物さん」を是非お試し下さい。
(奥さまがいる方は是非おすすめ下さいませ)


メニュー


ただ、ただ、入れればいいのです(自動的に足し上げていきます)



買い物計算に必要な機能は全部あります



消費税もバッチリ



終了後に「買い物スコア」でスキル判断。スコアが貯まるとレベルアップも。







【スーパーの電卓 買い物さん】
iPhone専用 / 無料

アプリ【StackOne】最新バージョン 1.4 リリース〜 iPad対応

2014年7月11日金曜日 | Published in | 0 コメント

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

エバーノート投稿アプリ【StackOne】の最新バージョン 1.4 がリリースされました。




今回のリリースから iPadでも使えるようになりました。








投稿後のノートはこんな感じで見えます(エバーノートiPad版)。


紹介記事など






- - - -
iPad対応記念セール実施中です。
400円→100円

興味のある方はこの機会にどうぞ。


UITableView 初期位置設定 in UINavigationController (iOS7)

2014年7月5日土曜日 | Published in | 0 コメント

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

極私的メモ。UINavigationControllerで遷移してきた画面でUITableViewを表示する時、任意の位置のセルで初期表示したい。
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.tableView reloadData];
    [self _scrollAnimated:NO];          // 任意のセルへスクロール
}
viewWillAppearに書いてもだめ(iOS7)。viewDidAppearだと画面がちらつく。

viewDidLayoutSubviewsに書いたらうまくいった。ただしフラグを使って初回だけに限定してやる。
@property (nonatomic, assign) BOOL didLayoutSubviews;

- (void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
    if (!self.didLayoutSubviews) {
        [self _scrollAnimated:NO];
        self.didLayoutSubviews = YES;
    }
}



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