NSMutableString *mstr = [NSMutableString stringWithString:cellTitleLabel.text]; for (int i = 0; i < [cellTitleLabel.text length]; i++) { NSString *temp = [cellTitleLabel.text substringToIndex:i]; if ([temp lengthOfBytesUsingEncoding:NSUTF8StringEncoding] > DETAIL_TITLE_LENGTH_AS_BYTE) { [mstr appendString:@"\n"]; break; } }
2014年6月30日月曜日
バイト長で文字列を区切る
以下の場合は改行を挟むパターン。
ラベル:
iOS,
Objective-C
審査で蹴られたアプリがiTunesConnectから削除できない
・・・っていって問い合わせフォームから投げたら、返ってきた。
You can delete an app from iTunes Connect if it has at least one approved version and is in one of the following states:
Prepare for Upload
Waiting for Upload
Invalid Binary
Developer Rejected
Rejected
Metadata Rejected
Developer Removed from Sale
Removed from Sale
If the option to delete the app is not available,
make sure that the app is removed from sale,
is not part of a Game Center group, and is not in review.
You can delete an app from iTunes Connect if it has at least one approved version and is in one of the following states:
Prepare for Upload
Waiting for Upload
Invalid Binary
Developer Rejected
Rejected
Metadata Rejected
Developer Removed from Sale
Removed from Sale
If the option to delete the app is not available,
make sure that the app is removed from sale,
is not part of a Game Center group, and is not in review.
「delできるのは以下のステータスだよ」
「できないときは、AppStoreから強制削除された場合、ゲームセンターに追加されてる場合、レビュー中の場合じゃないか確認してね」
って感じか。
今の状態は「Waiting for Upload」かつ、
価格設定等すべて破棄した状態なので削除できないわけはないが、できないまま。
・・・バグじゃねえのかなコレ。
もっと問い合わせ増えれば見直されるかもしれん。
時間の無駄っぽいから今のところは諦める。
自作アプリの審査開始が遅い・・・7日経過
先週23日にアップロードしたNewsCenterがまだ審査開始にならない。
ふと気になって平均審査期間確認したが、
https://developer.apple.com/news/
・・・「5日以内に処理される確率 79%」のまま。
単に21%に引っかかってるのか、それとも何か問題があるのか。
気になる気になる。
てか大体審査待ちの間って何してんのかね。静的解析?
ふと気になって平均審査期間確認したが、
https://developer.apple.com/news/
・・・「5日以内に処理される確率 79%」のまま。
単に21%に引っかかってるのか、それとも何か問題があるのか。
気になる気になる。
てか大体審査待ちの間って何してんのかね。静的解析?
2014年6月29日日曜日
サーバーをレンタルしました。そしてWordPressをインストール。
厳正なる比較検討(10分)の結果、サーバーはHostGatorとた。
で、WordPressインストールしてみたんだけど、DNSが浸透していない(?)せいなのかWPのコンパネにアクセスできなかった。
お値段と、評判と、アレゲなサイトをホストすることも可能な海外鯖ということで。
いや、健全なサイト作りますけどね、ええ。
導入→WordPressインストールまではこちらが参考になりそうです。
HostGator日本語ガイド
辿り着く前に決めちゃったけど。
ネットでHostGator調べても、ちょっと古い情報が多かったのが気になった。
(期間絞ってググれって話ですが)
曰く、コントロールパネルが日本語対応してる、とか
曰く、WordPressの簡単インストール機能はない、とか。
まあ英語で平気なんですけどね、俺らのApple様のお陰で慣れたよ。
簡単インストールがあるのは嬉しい誤算。
コンパネまあまあ見やすい。下の方行くとRailsのStartボタンとかあって、結構遊び甲斐はありそう。
で、WordPressインストールしてみたんだけど、DNSが浸透していない(?)せいなのかWPのコンパネにアクセスできなかった。
ここまでで何か間違ってるとも思えないので一日寝かせることとする。
2014年6月28日土曜日
V-プリカが使えなくなっていた件。てか月額使用料には使えない件。
昨日、V-プリカ調達したっすよって書いたんですけど。
ムームードメインでの支払いしようと思ったら、「エラー このカード使えません」
( ゚д゚)ポカーン
で、調べてたらでるわでるわ。
使い勝手が悪化したVプリカ
ムームードメインでの支払いしようと思ったら、「エラー このカード使えません」
( ゚д゚)ポカーン
で、調べてたらでるわでるわ。
使い勝手が悪化したVプリカ
お二方とも、自分と同様にサーバー費的なものを支払おうとされて模様。
要するに、買い物とかには使えるけど期間利用料なんかの支払いには使えなくなったらしい。
・・・・ないわー。ホントないわー。マジないわー。
わざわざ買って使えないとかないわー。
VISAカードと同じようにつかえないんじゃん。
ドメインの更新にも使えないし、海外サーバーの契約にも使えない。つかえねーよ!?
↓このページ、TOPのどこから辿れるんだよw
3ヶ月以内に使わないと保管料引かれるし、ささっと使い切りたいところ。
何買おうかなああああああああああああああああああああああああああああああああああああああああああああああああああああああ?
2014年6月27日金曜日
サーバー代とか払う用にV-プリカを購入した。
V-プリカ。
購入したっていっても前から何回か使ってるんですが、金額たりなそうなので足してきた、という話。
サーバー代やらシェアウェア代を払うのに、普段使いのクレカは使いたくない、
という人にピッタリなのがV-プリカ。
VISAのクレカとして使用できる仮想プリペイドカード。といえばいいものか。
→ 【追記】つかえなくなってましたー m9(^Д^)プギャー
SublimeText買うのに最初買ったんだよな。
・・・最近肝心のSublime使ってねえ。結構高いのに。
クレカ払いが便利でいいけど、海外の怪しい?サイトというか、とにかくAmazon以外でクレカ使いたくねえよ、という方におすすめ。
なんかミクさんデザインができてた。
可愛くても、物理的なカードをもてるわけではないので意味ないけれども。
購入したっていっても前から何回か使ってるんですが、金額たりなそうなので足してきた、という話。
→ 【追記】つかえなくなってましたー m9(^Д^)プギャー
SublimeText買うのに最初買ったんだよな。
・・・最近肝心のSublime使ってねえ。結構高いのに。
クレカ払いが便利でいいけど、海外の怪しい?サイトというか、とにかくAmazon以外でクレカ使いたくねえよ、という方におすすめ。
なんかミクさんデザインができてた。
可愛くても、物理的なカードをもてるわけではないので意味ないけれども。
ラベル:
iOS,
Objective-C
2014年6月26日木曜日
WordPressとWordPress.comの違いとか。
暇になったので、流行りもんのWordPressを使ってみようと思う(遅い)。
WordPressとは?
→ オープンソースのブログソフトウェア。CMSとしての利用も多い。
WordPress.comって要するにWordPress公式かと思ってたが違った。
.comの方はWordPressを使ったレンタルブログサービスだ。
WordPress公式はhttp://wordpress.org/ね。
無印と.comはなにが違うんじゃって記事はやっぱり.comの記事にあった。
.comの方はカスタマイズに制限があるというか、豊富なアドオンが使えないようなので
無印をインストールして使用していこうと思う。
が、サーバーを借りないと行けないな。検討中である。
またサーバーが増えてしまう。めんどい。
2014年6月25日水曜日
ソーシャル関連 調査メモ
後々、アプリに実装したいAPI類。
【カウンター(コメント件数取得)】
Facebook
http://graph.facebook.com/<取得対象のURL>
→ シェア数が取得できるようだ。
FBだと、シェア数、Like数、コメント数とかあるけど、
どれが人気記事の指標としてふさわしいか?
Twitter
http://urls.api.twitter.com/1/urls/count.json?url=<取得対象のURL>
はてなブックマーク
http://api.b.st-hatena.com/entry.count?url=<取得対象のURL>
【特定ページのコメント取得】
https://graph.facebook.com/comments/?ids=<取得対象のURL>
Graph APIで新コメント欄の返信機能を扱う
【カウンター(コメント件数取得)】
http://graph.facebook.com/<取得対象のURL>
→ シェア数が取得できるようだ。
FBだと、シェア数、Like数、コメント数とかあるけど、
どれが人気記事の指標としてふさわしいか?
http://urls.api.twitter.com/1/urls/count.json?url=<取得対象のURL>
はてなブックマーク
http://api.b.st-hatena.com/entry.count?url=<取得対象のURL>
【特定ページのコメント取得】
https://graph.facebook.com/comments/?ids=<取得対象のURL>
Graph APIで新コメント欄の返信機能を扱う
2014年6月24日火曜日
今後の開発計画
マジで書くことなくなった。
作りかけてたものが一段落しちゃったのでやる気ゼロだ。
だので、今後の予定をちょっと書き出しながら整理する。
① アプリ「2chbuzz」
→ 広告入れたい。広告入れたいけど、操作性というかUI損ねたくないので形が難しい。
どうしたもんか。
② アプリ「News Center」
→ メインで拡張していきたい。新着件数とFBコメント・tweet表示したい。
API調べないと。あとこれも広告。
③ アプリ「SSS Cam」
→ 正直どうしようもない。ただデフォカメラ準拠を網羅できたので
なんか別のネタカメラアプリか何かに転用して、収益化を図る。
④ アプリ「半角カタカナ変換」
→ かなりどうでもいいが、結構レビュー書いてくれてるので
要望機能の追加とUIの整理等はする。広告は要らんだろ。
競合多い中、使ってもらえればOK。
⑤ WordPressの勉強
→ ツールの使い方とホスト先の検討、このブログの移行。
PHP触らないでどこまでできるもんなのか?
アドオンもいっぱいあるみたいなので楽しみだ。
向こう一週間はコレをやる。
作りかけてたものが一段落しちゃったのでやる気ゼロだ。
だので、今後の予定をちょっと書き出しながら整理する。
① アプリ「2chbuzz」
→ 広告入れたい。広告入れたいけど、操作性というかUI損ねたくないので形が難しい。
どうしたもんか。
② アプリ「News Center」
→ メインで拡張していきたい。新着件数とFBコメント・tweet表示したい。
API調べないと。あとこれも広告。
③ アプリ「SSS Cam」
→ 正直どうしようもない。ただデフォカメラ準拠を網羅できたので
なんか別のネタカメラアプリか何かに転用して、収益化を図る。
④ アプリ「半角カタカナ変換」
→ かなりどうでもいいが、結構レビュー書いてくれてるので
要望機能の追加とUIの整理等はする。広告は要らんだろ。
競合多い中、使ってもらえればOK。
⑤ WordPressの勉強
→ ツールの使い方とホスト先の検討、このブログの移行。
PHP触らないでどこまでできるもんなのか?
アドオンもいっぱいあるみたいなので楽しみだ。
向こう一週間はコレをやる。
2014年6月23日月曜日
オブジェクトのクラスの判別
オブジェクトの型が何が分からない場合、isKindOfClassで検証できるようだ。
まあ何の型が入ってるか分からない場合ってあんまないけど、
以下の場合、tempにArrayが入ってるか、Arrayの1要素のDictionaryが直接入ってくるか、
外部からのデータ文字列に依存するためこのような方法になった。
まあ何の型が入ってるか分からない場合ってあんまないけど、
以下の場合、tempにArrayが入ってるか、Arrayの1要素のDictionaryが直接入ってくるか、
外部からのデータ文字列に依存するためこのような方法になった。
if ([temp isKindOfClass:[NSArray class]]) { _feedDataItems = temp; }else{ _feedDataItems = @[temp]; }
ラベル:
iOS,
Objective-C
2014年6月22日日曜日
カメラアプリ「SSS Cam」がリリースされました
逆になぜ審査通ったのか。
カメラアプリ「SSS Cam」がリリースされました。
静音カメラとして開発したものの「デフォの音ならないと駄目だよ」 つって審査蹴られてた例のアレ。
音出すようにしてしまったら他に目立った機能もなく、
「デフォルトのカメラアプリと機能差殆ど無いから審査NG」とか
言われるのを覚悟していたが問題なくリリースされてしまった。
い、いいのか?まあ自分はもちろんありがたいが。
今回は有料アプリとしてみた。あまり売れないと思うけども。
カメラアプリというジャンル自体はたぶんiOS端末で開発する限りなくなることはないから、
後々に役に立つことに淡い期待を抱く。
・・・まあ工数分くらい回収できると一番いいけれども。
ラベル:
iOS,
Objective-C,
アプリ審査,
自作アプリ
2014年6月21日土曜日
UINavigationbar上のフォント等の設定
設定するのが面倒だ・・・。
フォントなどなど弄りたければ、label作って入れ替える。
フォントなどなど弄りたければ、label作って入れ替える。
UILabel *title = [[UILabel alloc] initWithFrame:CGRectZero]; title.font = [UIFont boldSystemFontOfSize:FONTSIZE_HEADER]; title.textColor = COLOR_TITLE; title.text = @"Mews"; title.textAlignment = NSTextAlignmentCenter; [title sizeToFit]; self.navigationItem.titleView = title;
ラベル:
iOS,
Objective-C
2014年6月20日金曜日
UITableView上のTextFieldで入力中にキーボードで隠さないようにする
TextField上で編集する際にキーボードが表示され、覆いかぶさってしまうことの回避方法。
表示中のみtableにinsetを設定する。
<UIEdgeInsetsの参考>
http://runlooprun.wordpress.com/2011/02/20/uiedgeinsets/
表示中のみtableにinsetを設定する。
<UIEdgeInsetsの参考>
http://runlooprun.wordpress.com/2011/02/20/uiedgeinsets/
#define INSET_KEYBOARD 260.0f //キーボード+予測変換欄の高さ #define INSET_BAR 60.0f //NavBarの高さ //編集開始時 UIEdgeInsets insets = UIEdgeInsetsMake(INSET_BAR, 0.0f, INSET_KEYBOARD, 0.0f); _keywordTableView.contentInset = insets; _keywordTableView.scrollIndicatorInsets = insets; //編集終了時 UIEdgeInsets insets = UIEdgeInsetsMake(INSET_BAR, 0.0f, 0.0f, 0.0f); _keywordTableView.contentInset = insets; _keywordTableView.scrollIndicatorInsets = insets;
ラベル:
iOS,
Objective-C
2014年6月19日木曜日
UIBarButtonItemのフォントサイズ変更
UIBarButtonで、『<』『>』とか『ー』『+』をボタン画像代わりに使用しているので、
大きさをあわせるためにフォントサイズを変更。
大きさをあわせるためにフォントサイズを変更。
//特定のボタンのサイズを変更 [_backButton setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:20.0]} forState:UIControlStateNormal]; //ボタン全部一括で設定したければこっち [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:20.0]} forState:UIControlStateNormal];
ラベル:
iOS,
Objective-C
2014年6月18日水曜日
日付の文字列のフォーマットを変更する
"Fri, 13 Jun 2014 21:08:14 GMT" → "2014/06/13 (Fri) 21:08:14" と変換したい。
まあ、日付文字列→日付→日付文字列の変換。
これだけでもめっちゃ面倒・・・。
ましな方法ないんだろうか。
NSDateFormatterを使用する際にnilが帰ってきてしまったため、
フォーマット文字列の指定を最初疑ったが原因はロケールの指定だった。
<日付のフォーマット指定の参考>
http://technical-iphone.blogspot.jp/2010/05/blog-post_06.html
NSString* dateStr = @"Fri, 13 Jun 2014 21:08:14 GMT"; dateStr = [dateStr stringByReplacingOccurrencesOfString:@" GMT" withString:@""]; NSDateFormatter* fmtToDate = [NSDateFormatter new]; [fmtToDate setDateFormat:@"EEE, dd MMM yyyy H:mm:ss"]; //Fri 13 Jun 2014 21:08:14 [fmtToDate setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; [fmtToDate setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"PST"]]; NSDate* date = [fmtToDate dateFromString:dateStr]; NSDateFormatter* fmtToStr = [NSDateFormatter new]; [fmtToStr setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; // Localeの指定 [fmtToDate setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"PST"]]; [fmtToStr setDateFormat:@"yyyy/MM/dd (EEE) HH:mm:ss"]; dateStr = [fmtToStr stringFromDate:date];
ラベル:
iOS,
Objective-C
2014年6月17日火曜日
静音カメラの審査レビュー変遷
俺氏「静音カメラアプリ作った」
↓
林檎「デフォルトでシャッター音が出ないアプリはNG。古事記にもそう書いてある。」
↓
俺氏「マナー時には音鳴らないように、非マナー時は音選べるようにしました」
↓
林檎「デフォの音以外が鳴るアプリはNG。」
↓
俺氏「じゃあ普通の音が鳴るようにします。」
これもうデフォルトのカメラと変わらんからまた蹴られるんじゃねーかな(白目
なんか、AppStoreで配布されてるアプリ見て、
「こんなの俺でも作れるわwwww楽勝っしょwwww」
つって作ってみたら審査通らないケースが多い。
まあ審査基準が変わってるんだろうが、それならAppStoreのアプリも取り下げさせろよ。
よっぽど問題ある(エロとか)場合しか取り下げられないみたいだが。
ネタに便乗するんじゃなくて、本当にクリエイティブな仕事をしないと駄目そうだ。
明日から本気出す。明日からね。
↓
林檎「デフォルトでシャッター音が出ないアプリはNG。古事記にもそう書いてある。」
↓
俺氏「マナー時には音鳴らないように、非マナー時は音選べるようにしました」
↓
林檎「デフォの音以外が鳴るアプリはNG。」
↓
俺氏「じゃあ普通の音が鳴るようにします。」
これもうデフォルトのカメラと変わらんからまた蹴られるんじゃねーかな(白目
なんか、AppStoreで配布されてるアプリ見て、
「こんなの俺でも作れるわwwww楽勝っしょwwww」
つって作ってみたら審査通らないケースが多い。
まあ審査基準が変わってるんだろうが、それならAppStoreのアプリも取り下げさせろよ。
よっぽど問題ある(エロとか)場合しか取り下げられないみたいだが。
ネタに便乗するんじゃなくて、本当にクリエイティブな仕事をしないと駄目そうだ。
明日から本気出す。明日からね。
ラベル:
iOS,
Objective-C,
アプリ審査
2014年6月16日月曜日
100記事更新を達成したので記念
( ・∀・)ノ このブログの公開記事数が、100件になりました。
だからなんだつっつー話ですけれども、継続できたのはいいことだ!
ほとんどアクセスないけどな!
もともとは、自作アプリのサポートURLに設定するサイトが必要だから、という理由で作ったこのブログ。
当初は全く更新も続かず、どうしたもんかと思ったけれど。
まあ家でプログラミング自体あまりしていなかったからネタが無いのは当たり前・・・
というのは言い訳だろうなあ。
今は自宅で自作アプリの開発に注力しているので、
8月くらいまでは毎日更新したいところだけどいい加減ネタのストックは尽きた(´・ω・`)
だがしかしネタがないということは開発が足りないということだ!!
何か作る → ネタができる → ブログ書く → ネタ尽きる → なんか作る
_人人人人人人_
> 永久機関 <
 ̄Y^Y^Y^Y^Y ̄
とりあえず、来月の100日連続毎日更新を次の目標に頑張ろう。
それが済んだらWordPressに移行したいけどね。
だからなんだつっつー話ですけれども、継続できたのはいいことだ!
ほとんどアクセスないけどな!
もともとは、自作アプリのサポートURLに設定するサイトが必要だから、という理由で作ったこのブログ。
当初は全く更新も続かず、どうしたもんかと思ったけれど。
まあ家でプログラミング自体あまりしていなかったからネタが無いのは当たり前・・・
というのは言い訳だろうなあ。
今は自宅で自作アプリの開発に注力しているので、
8月くらいまでは毎日更新したいところだけどいい加減ネタのストックは尽きた(´・ω・`)
だがしかしネタがないということは開発が足りないということだ!!
何か作る → ネタができる → ブログ書く → ネタ尽きる → なんか作る
_人人人人人人_
> 永久機関 <
 ̄Y^Y^Y^Y^Y ̄
とりあえず、来月の100日連続毎日更新を次の目標に頑張ろう。
それが済んだらWordPressに移行したいけどね。
Segue実行の可否を判断
というかSegueは「実行する」という表現でいいものか。
cellをタップして画面遷移する際、中の設定値により遷移していいか判断する処理。
cellをタップして画面遷移する際、中の設定値により遷移していいか判断する処理。
//Segue実行可否 - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender{ UITableViewCell *cell = sender; UITextField *cellTextField = (UITextField*)[cell viewWithTag:2]; if ([cellTextField.text isEqualToString:@""]){ LOG_CURRENT_LINE(@"%d", NO); return NO; }else{ LOG_CURRENT_LINE(@"%d", YES); return YES; } }
ラベル:
iOS,
Objective-C
2014年6月15日日曜日
ナビゲーションバーへのボタン追加
ナビバーの右端にボタンを追加する場合。
複数ボタンを追加したい場合、rightBarButtonItemsに配列で設定可能。
UIBarButtonItem* button = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStylePlain target:self action:nil]; self.navigationItem.rightBarButtonItem = button;
複数ボタンを追加したい場合、rightBarButtonItemsに配列で設定可能。
ラベル:
iOS,
Objective-C
2014年6月14日土曜日
2014年6月13日金曜日
SyntaxHighlighterの設置手順
書くことねえ!
書くことねえってことはアプリの開発を怠って酒ばっか飲んでいるということだ!
書くことないので、遡ってブログのSyntaxHighlighterの設置手順をば。
参考・Bloggerでの手順
http://naichilab.blogspot.jp/2013/04/blogger-syntax-highlighter.html
① 対象の言語選択選んでDL
http://www.way2blogging.org/widget-generators/syntax-highlighter-scripts-generator
② お好みの配色を選ぶ
http://alexgorbatchev.com/SyntaxHighlighter/manual/themes/
③ ちょっとカスタマイズ
http://wada811.blogspot.com/2012/02/bloggersyntaxhighlighter.html
④ Bloggerでの参照設定
http://naichilab.blogspot.jp/2013/04/blogger-syntax-highlighter.html
⑤ 投稿。指定のタグで囲む。
<pre class="brush: objc">
ここに任意のソースコード
</pre>
なお、指定タグは都度コピペするの面倒なので、
「タグ」の変換候補に各環境で登録しておくと便利。
書くことねえってことはアプリの開発を怠って酒ばっか飲んでいるということだ!
書くことないので、遡ってブログのSyntaxHighlighterの設置手順をば。
参考・Bloggerでの手順
http://naichilab.blogspot.jp/2013/04/blogger-syntax-highlighter.html
① 対象の言語選択選んでDL
http://www.way2blogging.org/widget-generators/syntax-highlighter-scripts-generator
② お好みの配色を選ぶ
http://alexgorbatchev.com/SyntaxHighlighter/manual/themes/
③ ちょっとカスタマイズ
http://wada811.blogspot.com/2012/02/bloggersyntaxhighlighter.html
④ Bloggerでの参照設定
http://naichilab.blogspot.jp/2013/04/blogger-syntax-highlighter.html
⑤ 投稿。指定のタグで囲む。
<pre class="brush: objc">
ここに任意のソースコード
</pre>
なお、指定タグは都度コピペするの面倒なので、
「タグ」の変換候補に各環境で登録しておくと便利。
2014年6月12日木曜日
2chまとめリーダー「2chBuzz」がリリースされました
2014年6月11日水曜日
reverseGeocodeLocationでエラー「Error Domain=kCLErrorDomain Code=8 "The operation couldn’t be completed. (kCLErrorDomain error 8.)"」
reverseGeocodeLocationでエラーになった。
Error Domain=kCLErrorDomain Code=8 "The operation couldn’t be completed. (kCLErrorDomain error 8.)"
原因は、渡したlocationがNilだったため。
_locationManager.delegate = self;
[_locationManager startUpdatingLocation];
とかするの忘れてたze。
Error Domain=kCLErrorDomain Code=8 "The operation couldn’t be completed. (kCLErrorDomain error 8.)"
原因は、渡したlocationがNilだったため。
_locationManager.delegate = self;
[_locationManager startUpdatingLocation];
とかするの忘れてたze。
[_geocoder reverseGeocodeLocation:_locationManager.location completionHandler:^(NSArray *placemarks, NSError *error) { if (error) { //こっちに落ちて取得できない LOG_CURRENT_LINE(@"%@", error); } else { if (0 < [placemarks count]) { CLPlacemark *p = [placemarks objectAtIndex:0]; //いろいろやる }else{ LOG_CURRENT_LINE(@"(取得できませんでした)"); } } }];
ラベル:
iOS,
Objective-C
2014年6月10日火曜日
Google News APIについて調べ中。
ニュースリーダー作成中につき、調査中。
ニュース検索の方法
http://www.crystal-creation.com/web-app/tech/web-api/google/search/news/#rss-feed
→ 結果はRSS(xml)で取得
ニュース検索のジャンルのオプション
http://www.crystal-creation.com/web-app/tech/web-api/google/search/news/parameter.htm
ニュース検索のオプション詳細(非公式)
blog.slashpoundbang.com/post/12975232033/google-news-search-parameters-the-missing-manual
→ 取得件数・ソートの制御可能な模様。
ついでにGoogleトレンド
http://www.crystal-creation.com/web-app/tech/search-engine/google/trend/
→ ・・・廃止済みのようだ。リンク先404。
商用利用可能か調べた方がよさそうな。
クレジット表記のみで大丈夫だといいけれど。
ラベル:
iOS,
Objective-C
2014年6月9日月曜日
validate時のエラー「Code Sign error: No codesigning identities found 〜」
またもや審査Up時にエラー。
Code Sign error: No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“SSSCam”) were found.
まあコードサインが一致しませんですよ、って話なんだけどどこ確認しても間違ってない。
itunesconnectでアプリのID確認してDistributionプロファイル確認して、
プロジェクトの設定見なおしても治らない。
四時間かかって発狂したあたりで気分転換にPC再起動してもう一度itunesconnect確認したら、
・・・provisioningとかいろいろできてなかった。てか消えてた?
全部作り直して解決。
なんで消えたか全く分からん。Firefoxでやってたんだけどなんか変にキャッシュされたんだろうか?
次からは念の為にsafari使うようにしよう・・・。回避できるか分からないけど。
Code Sign error: No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“SSSCam”) were found.
まあコードサインが一致しませんですよ、って話なんだけどどこ確認しても間違ってない。
itunesconnectでアプリのID確認してDistributionプロファイル確認して、
プロジェクトの設定見なおしても治らない。
四時間かかって発狂したあたりで気分転換にPC再起動してもう一度itunesconnect確認したら、
・・・provisioningとかいろいろできてなかった。てか消えてた?
全部作り直して解決。
なんで消えたか全く分からん。Firefoxでやってたんだけどなんか変にキャッシュされたんだろうか?
次からは念の為にsafari使うようにしよう・・・。回避できるか分からないけど。
ラベル:
iOS,
Objective-C,
アプリ審査
2014年6月8日日曜日
NSDataからNSStringへの変換
最初エラー出してしまった。
init alloc がnewでかけるようになったから間違ってしまった。
誤った方
[__NSCFConstantString initWithBytes:length:encoding:]: unrecognized selector sent to instance 0x3ab93320
正しい方
init alloc がnewでかけるようになったから間違ってしまった。
誤った方
NSString *xmlStr = [[NSString new] initWithData:data encoding:NSUTF8StringEncoding];エラーログ
[__NSCFConstantString initWithBytes:length:encoding:]: unrecognized selector sent to instance 0x3ab93320
正しい方
NSString *xmlStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
ラベル:
iOS,
Objective-C
2014年6月7日土曜日
アプリ審査に関する雑記。
SSS Camという静音カメラアプリの審査リジェクトに関してちょいと不思議なことが。
最初は普通に審査リジェクトされていたんだけど、
(音が全く出ないのはダメってことで)
3回目の審査中にInReviewのまま、リジェクトされず審査チームから電話がかかってきた。
で珍しく個々の機能について、「これは駄目」「ここはこう変えて」と指摘された。
修正して再UPしてほしいとのこと。
うーむ、なんでいつも通り文面で返してこないのだろうか。
なにか文面にするとまずいのかと勘ぐってしまう。
最初は普通に審査リジェクトされていたんだけど、
(音が全く出ないのはダメってことで)
3回目の審査中にInReviewのまま、リジェクトされず審査チームから電話がかかってきた。
で珍しく個々の機能について、「これは駄目」「ここはこう変えて」と指摘された。
修正して再UPしてほしいとのこと。
うーむ、なんでいつも通り文面で返してこないのだろうか。
なにか文面にするとまずいのかと勘ぐってしまう。
2014年6月6日金曜日
起動直後に「Terminating app due to uncaught exception 'NSUnknownKeyException'」
アプリ起動直後に即死、
エラーメッセージは「Terminating app due to uncaught exception 'NSUnknownKeyException'」。
自分の場合の原因は、前回記事のコピペしたクラスに存在しないIBOutletをStoryBoardが参照していたため。
NSUnknownKeyExceptionって、「不明なキーで例外発生した(´・ω・`)」って意味だが分かりづらいな。
まあなんでも文字列キーで紐付けてるからそうっちゃそうだろけど。
エラーメッセージは「Terminating app due to uncaught exception 'NSUnknownKeyException'」。
自分の場合の原因は、前回記事のコピペしたクラスに存在しないIBOutletをStoryBoardが参照していたため。
NSUnknownKeyExceptionって、「不明なキーで例外発生した(´・ω・`)」って意味だが分かりづらいな。
まあなんでも文字列キーで紐付けてるからそうっちゃそうだろけど。
ラベル:
iOS,
Objective-C
2014年6月5日木曜日
ビルドエラー「linker command failed with exit code 1」
・・・何回おんなじビルドエラーでググっているんだ。
しかも前これブログ書いてないかいな。
類似のクラスを作成するため、ソースコード(.h、.m)をコピー。
リネームしてプロジェクトに追加。
で、ビルドするとエラー「linker command failed with exit code 1」。
なにやら、「duplicate symbol _contentsType 」と言われている。
要するに、元々のクラス内で適当に作成した変数がグローバルになってしまっていて、
バッティングしてしまったらしい。大量に。あほす。
新しく作った側の変数をリネームしまくって対応完了。
しかも前これブログ書いてないかいな。
類似のクラスを作成するため、ソースコード(.h、.m)をコピー。
リネームしてプロジェクトに追加。
で、ビルドするとエラー「linker command failed with exit code 1」。
なにやら、「duplicate symbol _contentsType 」と言われている。
要するに、元々のクラス内で適当に作成した変数がグローバルになってしまっていて、
バッティングしてしまったらしい。大量に。あほす。
新しく作った側の変数をリネームしまくって対応完了。
ラベル:
iOS,
Objective-C
2014年6月4日水曜日
アプリ審査「Your app requires additional review time」だそうな
アプリの審査がIn Reviewになったまま、5日が経過。
審査完了(NGかもだが)メールがスパム扱いで拾えてないだけかと思ったがそんなこともなく。
そわそわしていたらメール来た。
"Your app requires additional review time"
We are currently reviewing an app that you submitted for inclusion on the App Store, and want to let you know that the review process will require additional time. We apologize for the delay and will provide you with an update on the status of your app as soon as possible.
もうちょっとだけ続くんじゃみたいな話しか。
珍しい。課金でちょっと調子こいた値段にしてるからかな?
審査完了(NGかもだが)メールがスパム扱いで拾えてないだけかと思ったがそんなこともなく。
そわそわしていたらメール来た。
"Your app requires additional review time"
We are currently reviewing an app that you submitted for inclusion on the App Store, and want to let you know that the review process will require additional time. We apologize for the delay and will provide you with an update on the status of your app as soon as possible.
もうちょっとだけ続くんじゃみたいな話しか。
珍しい。課金でちょっと調子こいた値段にしてるからかな?
ラベル:
iOS,
Objective-C,
アプリ審査
2014年6月3日火曜日
Git管理下からコピーして新しいプロジェクトを作成(svn export的な)
Git管理にあるフォルダを管理外してコピーする方法。
コピー新規で新しいプロジェクト作るのに使用。
$ git checkout-index -a -f --prefix=export/
実行したフォルダにexportフォルダが作成され、中にコピーされる。
好きにリネームして、またgit initで管理追加。
あと git archiveってすると固めた状態で出力できるみたい。
<参考>
gitでsvn export的なことをやる
2014年6月2日月曜日
ループ中でのreverseGeocodeLocationはできない模様
assetsを取得して中身全部なめて座標データから地名取得して配列にぶっこみたい。
で、実行すると全部ループ回りきったあとにreverseGeocodeLocationが一回だけ実行される。
(´・ω・`)
基本的にやりたかったことは以下↓
for (ALAsset* asset in self.photos) { ALAssetRepresentation *representation = [asset defaultRepresentation]; NSURL *url = [representation url]; LOG_CURRENT_LINE(@"%@", url); CLLocation *location = (CLLocation *)[asset valueForProperty:ALAssetPropertyLocation]; // 逆ジオコーディングの開始 [_geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { LOG_CURRENT_LINE(@"ここがどう頑張っても先頭の一回しか実行されない"); if (error) { LOG_CURRENT_LINE(@"%@", error); } else { if (0 < [placemarks count]) { // ログ出力 LOG_CURRENT_LINE(@"%@", url); CLPlacemark *p = [placemarks objectAtIndex:0]; NSString *country = [p.addressDictionary objectForKey:@"Country"]; NSString *state = [p.addressDictionary objectForKey:@"State"]; [_stateMuDic setObject:state forKey:state]; LOG_CURRENT_LINE(@"%@", _stateMuDic); }else{ LOG_CURRENT_LINE(@"(取得できませんでした)"); } } }]; cnt++; }途中にdispatch_semaphore_waitとか挟んでむりやり同期する方法もためしたけどうまくいかず。
でstackoverflowで調べてみたらやっぱ同じことしてる人いた。
reverseGeocodeLocation Only Executes Completion Block Once
→ (`・ω・´)短いスパンで呼び出してはダメってAppleのドキュメントにかいてあるよ
・・・だそうな。えええええぇぇぇぇぇぇぇ・・・・・。
げ、原文読むのしんどい。
ラベル:
iOS,
Objective-C
2014年6月1日日曜日
Objective-Cにおける非同期処理についてちょいと調べた
まあ例によってまだ良くわかってないので調べ中なんですけど。
非同期処理を実装したい場合の方法について。
(厳密な用語として「非同期処理」と括っていいのかわからないけど、
「A処理の実行結果が取得された後にB処理を実行したい」というケース想定)
① dispatch_queueを使用する
dispatch_queue_createの第一引数は任意の文字列(const char)。
他の処理と重複してはいけないのかと最初思ったが、そうでもないようだ。
<参考>
http://fernweh.jp/b/grandcentraldispatch/
http://objective-audio.jp/2009/09/grand-central-dispatch-queue.html
② NSNotificationを使用する
こっちの方がブロック構文とかなくて簡潔かなあ。
<参考>
http://qiita.com/EntreGulss/items/0fbfa1b75eebf075da4d
んで。
結局まだ問題解決してないんですけどね。
「ループ中で非同期処理を実行しても最初の一回しか実行されない」という。
やれやれ。難しいなあ・・・。
非同期処理を実装したい場合の方法について。
(厳密な用語として「非同期処理」と括っていいのかわからないけど、
「A処理の実行結果が取得された後にB処理を実行したい」というケース想定)
① dispatch_queueを使用する
dispatch_queue_createの第一引数は任意の文字列(const char)。
他の処理と重複してはいけないのかと最初思ったが、そうでもないようだ。
<参考>
http://fernweh.jp/b/grandcentraldispatch/
http://objective-audio.jp/2009/09/grand-central-dispatch-queue.html
dispatch_queue_t sub_queue = dispatch_queue_create("com.nadegiri.development", 0); dispatch_async(sub_queue, ^{ //実行したい処理 [self hoge]; });
② NSNotificationを使用する
こっちの方がブロック構文とかなくて簡潔かなあ。
<参考>
http://qiita.com/EntreGulss/items/0fbfa1b75eebf075da4d
んで。
結局まだ問題解決してないんですけどね。
「ループ中で非同期処理を実行しても最初の一回しか実行されない」という。
やれやれ。難しいなあ・・・。
ラベル:
iOS,
Objective-C
登録:
投稿 (Atom)