忍者ブログ
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


久々にSimpleMapCreatorのバージョンアップ!
最近、なかなか他の事で忙しくて作業が進んでいなかったが、やっと更新できた。

更新内容としては、画像読み込みに対応した。

これは、正月に会った親戚にアプリの宣伝をした時に言われた事から対応した。
作業途中を保存できないか?との事だったので、追加した。
本当は、作業状態をアプリ独自に保存するイメージで言っていたようだが、それは面倒。
(出来ない訳ではないし、実際、他のアプリ開発の為にファイルへの保存サンプルは作成済み)
実質的には、途中でカメラロールに保存し、その画像を元に再会する事で、ほぼ実現可能。
ベースとなる画像が、無関係の画像でもよいので、結果的にはこの方が使い勝手はいいのではないかと思う。

それはいいとして、このブログで閲覧の多い内容が、相変わらず「Processing for App Store」関連。

今回、アプリのバージョンアップであったので、どうなるのか見ていた。
しかし、あっさりと「Ready for Sale」へと変わり、問題なくバージョンアップ完了した。

常に、「Processing for App Store」で検索され、閲覧されているので、また、発生するかと思ったのだが・・・

おそらく、「Processing for App Store」から状態が変わらない現象が発生する人は、多いのだと思う。
発生条件がよくわからない。
もしかしたら、一度回避策を行った後には起きなくなるのかもしれないが、そうであれば、検証が難しい。
この辺りの情報をまとめた人は、まだいないのだろうか?

拍手[0回]

PR

ちょっと思い立ったアプリを現在作成中。
この中で、久々にスレッドを追加して処理を行うように実装を進めていたところで、問題にぶつかった。

ざっくりと実装を行いシミュレータで動作させた所、下記のようなエラーが発生して処理が止まってしまった。

======================================

Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread.

======================================

処理の内容としては、作成したスレッドで計算を行い、結果を表示に反映しようとしただった。

まさに、これがまずかった事に気がつかなかった。
表示の内容を変更するのは、メインスレッドにて行う必要がある。
それを守らずに、今回の自分のような事を行ってしまうと、同じような目に遭うようだ。

結果的に、内容を記憶しておき、表示の更新のみメインスレッドで行うようにする事で、特に問題なく動作した。

以前にスレッドを使ったときは、こんな所に引っかかった覚えが無いのだが、おそらく忘れているのかな?
このように、何か残したり、ちょっと書いたりする事で、記憶の片隅に残す個tが出来ればいいと思う。

拍手[0回]


いろいろなアプリでよくあるボタンの長押しによる連続処理を実装してみた。

始めは、どのように作り込むのがよいのか少し悩んだが、例によってネットで検索すると良い方法が出ていた。
長押し用のクラス「UILongPressGestureRecognizer」があったので、これを利用するのが最もよいようであった。
//ボタンの長押し設定部分
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressedButton:)];
    [button addGestureRecognizer:longPress];
上記の用に、長押しを「button」に設定する。

「longPressedButton」に長押し時の処理を書けばよい。
さらに、この中で、長押しの動作を細かく分けて処理を行う事が出来る。

-(void) longPressedButton:(UILongPressGestureRecognizer *)gestureRecognizer
{
    switch (gestureRecognizer.state) {
        case UIGestureRecognizerStateBegan:
            //長押しを検知開始
            break;
        case UIGestureRecognizerStateEnded:
            //長押し終了時
            break;
        default:
            break;
    }
}
上記のように長押しの開始終了を分ける事が可能。
さらに、他にもあるので、case文を増やすとさらに細かな処理を出来るが、他の処理としては、押したまま動かした時にくるイベントと、異常系のイベントらしかった。
今回、自分が欲しかったのは無いようであったので、上記のように実装した。

長押し中に連続した処理は、長押し開始時にタイマをセットし、終了時にタイマ停止を入れ、タイムアウトに処理を入れる事で、連続処理が行われるようになった。

これから先も、1回押しと、長押しの区別がされる事は、かなり便利に使う事が出来ると思う。

拍手[2回]


xcode5を使用してはじめから作成したプロジェクトもいよいよ仕上げに入り、広告表示を組み込んだ。
手順は、既に固まっているので特に悩む事なく進めていたが、ここでつまずいた。
64ビット用でビルドした時のみ、ワーニングとエラーが発生した。

===============================

ld: warning: ld: warning: ld: warning: ignoring file /ファイルのパス/libAdapterNend.a, missing required architecture x86_64 in file /Uファイルのパス/libAdapterNend.a (3 slices)ignoring file /ファイルのパス/libGoogleAdMobAds.a, missing required architecture x86_64 in file /ファイルのパス/libGoogleAdMobAds.a (3 slices)ignoring file /ファイルのパス/libAdapterIAd.a, missing required architecture x86_64 in file /ファイルのパス/libAdapterIAd.a (3 slices)


Undefined symbols for architecture x86_64:

  "_OBJC_CLASS_$_GADBannerView", referenced from:

      objc-class-ref in ChartImageViewController.o

      objc-class-ref in EntryViewController.o

  "_OBJC_CLASS_$_GADRequest", referenced from:

      objc-class-ref in ChartImageViewController.o

      objc-class-ref in EntryViewController.o

  "_kGADAdSizeBanner", referenced from:

      -[ChartImageViewController viewDidLoad] in ChartImageViewController.o

      -[EntryViewController viewDidLoad] in EntryViewController.o

  "_kGADAdSizeLeaderboard", referenced from:

      -[ChartImageViewController viewDidLoad] in ChartImageViewController.o

      -[EntryViewController viewDidLoad] in EntryViewController.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (us


===============================

このようなものが出て、エラーやワーニングでも出てきているし、ビルドしたときの現象でもわかるように64ビット対応での何かの問題である事は間違いない。
それゆえ情報はまだまだ少ない内容である事に間違いはなさそうと思い、ビルドの設定関連をチェック。

すると、下記項目に気がついた。



ビルドセッティングにある図の項目が、デフォルトでは、下の64ビットが入った方が選択されている。
ここを、変更し、64ビットを外すと問題なくなる。

Admob等の広告のSDKが、64ビット対応されるまでは、この設定変更が必須のようだ。

拍手[2回]


今更なような単純な事にはまってしまった。

UIImageViewで、画像を表示させようとしていたところ、シミュレータで確認したところ、問題なく表示されたのだが、実機の場合には、表示されない現象があった。

しばらく原因が分からずに、調べたところものすごく単純なミスをしてしまっていた。

はじめに、クリーンと再ビルドを繰り返したが、当然、改善されず。
ネットで調べていたところ、画像ファイル名を変更して再読み込みをすると問題解消されたとあったため、試したが、改善されず。

結果的に、ファイル名の大文字小文字が間違っていた。

シミュレータの場合には、ファイル名の大文字小文字を間違っても表示されるが、実機の場合は、ただいく指定しなければ表示されないらしい。

これは、シミュレータのバグと思うから、対策してほしいものだ。

拍手[0回]


リリース済みアプリ

Silmuvide


PseudoRPT


うつすと!


ChronologyMaker


LASI


3行日記


単位計算機


Marking Map Plus


交通費管理


交通費計算リスト


Markin Map


SheepSleepSheep


RootCalculator


元号変換


PieChart


MeasureShooting


SimpleMapCreator



Applivのレビュー記事
http://app-liv.jp/713163900/

ゆびてんじ


PR



Copyright ©   marble seijin の開発日記   All Rights Reserved
Design by MMIT simple_plain Powered by NINJA TOOLS
忍者ブログ [PR]