今日のエラーFramework not found GoogleToolboxForMac
iOS13にしないとリジェクトされるらしい。期限がコロナウイルス問題で
2020/6/30まで延長されたので、この機会に再ビルドすることにした。
iOS9のときに開発したので相当ふるそうだ。
参考にするのは次のサイト
https://www.raywenderlich.com/128668/scene-kit-tutorial-with-swift-part-1
scenekitを使うと3Dでゲーム開発ができるようです。
UNITYも便利ですが、いかんせん、いつ使わなくなるかわからないのでアップル純正の開発環境をメインに使いたいと思います。
iPhoneアプリ開発中はさまざまなエラーが発生します。できるだけ、その都度、どうやったのかをメモしています。
そうすることで、すぐにエラーに対処でき、悩まずに済みますし、開発期間を短縮できるし、ストレスも小さくできます。
記憶が薄れそうなので、CoreDataコアデータ、データベースについて記載すると、コアデータを使用したアプリは、プロジェクトで先にテンプレートを指定したほうが開発が楽になります。他のテンプレートを指定したあとで、CoreDataの記載をするとエラーが多発してしまい時間がかかり、結局、コアデータのテンプレートを使用して開発しました。(2013年12月10日追記)
プロパティでstrongではなく、weakにしていた。
weakをstrongにして、配列のオブジェクトの値を正常に取得できました。
・NSMutableArrayのエラー、初期化を忘れているとコンパイルエラーがなくても、間違っている。初期化忘れがないかをチェックしましょう。
[[NSMutableArray alloc]init];
int n=10;
NSNumber *num=[NSNumber numberWithInt:n];
NSNumberをintとして扱うときは
n=[num intValue];
とします。
‘NSInvalidArgumentException’, reason: ‘-[ResultViewController viewControllers]: unrecognized selector sent to instance 0x11a5e950’
ナビゲーションコントローラーがないのに、ナビゲーションコントーラー用のコードを書いていました。
ナビ−ゲーションコントローラーがあるときの値を渡すとき
[c]
UINavigationController *navCon=segue.destinationViewController;
ResultViewController *rv=[navCon.viewControllers objectAtIndex:0];
rv.youSelectNumber=[NSNumber numberWithInt:iselectAnswer];
[/c]
を
[c]
ResultViewController *rv=segue.destinationViewController;
rv.youSelectNumber=[NSNumber numberWithInt:iselectAnswer];
[/c]
ナビゲーションコントローラーがないときはシンプルです。
というエラーは、ビルドセッティングを入れれよいだけでした。
以前作業したときはあったような気がしましたが、もしかすると、X-CODEのバージョンアップで解除されてしまった?
BuildSetting->Linking->Other Linker Flags
-ObjC
をRelease and Debugに入れました。
とりあえず、OKですが、
実はテーブルビューでスクロールをすると広告がセル一緒に移動してしまうのです。
ということはテーブルビューではAdmob広告は使えないか、他のテーブルで設定しなければなりません。
reason: ‘+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name
シングルビューでプロジェクトを作成し、後で、coreDataを追加したものです。
エンティティネームが間違っているかと思いましたが、正しい。
後入れ、CoreDataは結構面倒ですね。だからみんなさきに指定して作るんですね。
とりあえず、さきにEmptyプロジェクトにして作り直してみます。
>未解決ですが、解決としては、Emptyプロジェクトにして作り直したほうが早い
Emptyで作り直して、問題なかったのですが、また再現しました。
*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’,
reason: ‘+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name
まず、アプリを削除して、クリーンを実行しました。
その後、次の5−3のエラーが発生
reason: ‘*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array’
データをリセットして、初期状態になったので、
配列数が0になったと思います。
配列数が0のときに、配列の値を取得しないようにしました。
またエラーが発生したので、よくみたら
AppDelegateしたプロパティを
self.appとしました。
グローバル変数としたものを
@property(strong,nonatomic)NSNumber *nowNumber;//NSInteger
をweakにしたら、エラーが表示されず。
@property(weak,nonatomic)NSNumber *nowNumber;//NSInteger
しかし、エラーにならずとも、値がリセットされていました。値なしです。
そこで、retainにしてみました。
するとOKでした。
どうやら、AppDelegateのグローバル変数はretainが良さそうです。
そのほか、managedObjectContextが作成されていないみたいだったので、AppDelegate.h,mに設定しました。しかし、これでもだめ。
やはり、AppDelegateしたプロパティを
self.appとしました。OKです。
reason: ‘Cannot create an NSPersistentStoreCoordinator with a nil model’
現在のビュークラスから次のビュークラスへ移動のときに、次のビュークラスでエラーがあって
呼び込めていないことがありました。そのため、次のクラスの怪しい箇所をコメントにしました。
pushがだめならとmodalに変更しました。
なお、このnot supportedの場合、ナビコントローラーを交互に入れていたので(必ず一組で作成)、その1組のうちのナビコントローラーを削除して、組み直すとpushでも可能になります。
ここら辺がやってみないとわからないトライアンドエラーです。
Property implementation must have its declaration in interface ‘ResultViewController’
.mで、@synthesizeのところで改行を入れたから、OKでした。なぜ?
Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 “The operation couldn’t be completed. (Cocoa error 134100.)
新しく、CoreDataにエンティティを追加したり、アトリビュートを追加したときに実行するとエラーが起きます。
1.クリーンを実行して
2.この場合は、シミュレータのアプリを削除すればよいみたいです。
なお登録したデータが消えるかもしれないので、すでに登録して必要なデータは、保持した方がよいでしょう。テスト用でも面倒だったりするので。
動作について今のところ支障がない。
Unknown class AAAViewCotroller in Interface Builder file.
タブバーを使用して、画面を切り替えるとログが表示、実行に問題はないけど、ちょっとログがでてしまうのが気になるところ。
>未解決、重要性が低い
reason: ‘-[GADObjectPrivate changeState:]:
>X-CODEの環境設定で、Other Linker Flagsに -ObjCを追加
reason: ‘Unacceptable type of value for attribute: property = “number”; desired type = NSNumber; given type = __NSCFString; value = mas**.’
>未解決
-[MapViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xac6d150
*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[MapViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xac6d150’
>- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
を追加しました。これは、サーチした後にテーブルビューが表示されるものです。
書籍には記載されていないもので、記載ミスでしょうか。
-[NSURLResponse intValue]: unrecognized selector sent to instance 0xac65570
*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[NSURLResponse intValue]: unrecognized selector sent to instance 0xac65570’
ボタンをタップして次の画面に移動しないときがあって、必ず発生するエラーではない。3回に1回程度発生するという変なエラー。
NSURLResponse intValueを設定した覚えはない。ということは、それを使ってるメソッドか何かがどこかにあって、それが使っていると言うことですかね?
このように、必ず発生しないときは、発生手順をメモしながら原因を究明していきます。
環境は、ストーリーボード、coreDataを使用している。
>プロパティ変数のretainで解決しました。weakにして、retainでエラーがなくなりました。(5−3)での記載が詳細になります。
NSDate関連のエラーで、NSDateがnilでした。アウトプットはnullとでますが、
NSDate *date;
if(date==nil)
で判定します。
アイフォンとiPadで同じパーツを使用するときで、同じクラスを使用するとき、ヘッダーファイルのプロパティをiPadのストーリーボードのパーツに紐付けします。
これだけで良いのです。
新しく、iPadのストーリーボードからヘッダーファイルへ紐付けする必要はありません。
つまり、すでに既存のヘッダーファイルのプロパティを利用できるのです。
これは便利です。アイフォンアプリとiPadアプリの2つのアプリを作成時間は意外にも時間がかからないのかもしれません。
範囲外の値を入力していたので、範囲を小さくしました。
reason: ‘[
アイフォンのストーリーボードからiPadのストーリーボードにコピペして、それを共通のビュークラスに紐付けしました。
そして、この紐付けが不要なのに、そのままにしていました。
shows connections inspectorで、びっくりマークになっている箇所を削除しましょう。
アイフォンと同じパーツを使うのであれば、ヘッダーファイルからストーリーボードのiPadのパーツへ紐づければ良いのです。ヘッダーファイルの該当するプロパティの左にある二重丸からiPadのストーリーボードのパーツへドラッグします。
この場合は、ヘッダーファイルからストーリーボードへつなぎます。いつものストーリーボードからヘッダーファイルへの向きと異なります。
たったこれだけです。iPadも意外と楽ちんです。
このようにして開発したアプリが弁理士短答試験過去問題記録ノートです。
iOS7 iPhoneアプリ(4作目)申請からリリース状況のまとめ 2013年9月、弁理士短答試験過去問題記録ノート
アドモブの広告をつけています。
Unityでの開発状況2014年Unity4.5.5