• 締切済み

iPhoneアプリ error = 24

iPhoneのアプリを自作してみたのですが AVAudioPlayerでcafを再生させる処理が多い所為か 何度もアクションを実行していると途中で音声がでなくなってしまいます iPhone 4ではそういったバグが見られないのですが iPhone 3GSやXcodeのエミュレーターではバグが発生します メモリリークの問題だと思い - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag {} に[player release];を書き込んでみたりしましたが結局バグは発生してしまいました (書き込む前は実行回数20~30の間でバグが発せしていましたが 書き込み後は実行数30~40の間で発生するようになりました) コンソールを表示させて行ったところバグ発生後に error = 24 (Too many open files) というエラーが表示されました。 どのようにすればバグが改善されるのでしょうか?

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

エラーの通りでしょ。 Too many open files って書かれてるんだから、 close しないで open を繰り返してるって事だよ。 心当たりがあるはずだけど・・・?

nosuke5614
質問者

補足

バグ発生前はエラー表示は出ないのですが バグ発生後はUIButtonやUIImagesViewをタップすると 上記のエラーが発生します。 (AVAudioPlayerでの再生時には音声が出ていない所為かエラーは表示されません。UIButton等の処理内容はすべてUIView アニメーションです) openを繰り返すといっても閉じる処理の検討がつかいないのですがどうすればよいでしょうか?

関連するQ&A

  • Objective-C error = 24

    iPhoneのアプリ開発に関する質問です UIButtonやUIImageViewを組み合わせてアプリを作成したのですが シュミレーターで実行した際、UIButtonをアニメーションで 表示させたりAVAudioPlayerでcafを再生させたりと処理を繰り返していると error = 24 (Too many open files) というエラーが発生して途中で音声が再生されなくなります エラーの内容は調べたところによるとファイルがオープンしたままで閉じていない 開きすぎている。といった状態です ソースコードを載せないと解決方法が分かりづらいかもしれませんが オープンしたUIButtonなどを閉じるにはどういったコードをどのクラスに書けばよいのでしょうか?

  • AVAudioPlayer インスタン

    iPhone の自作アプリで音声に関する場所を作成しているのですが AVAudioPlayerのインスタン作成場所について知りたいことがあります touchesMoved内 もしくは別クラスで音声を再生させる際 [ABC play];の上にコードを書き込み NSString *_ABC = [[NSBundle mainBundle] pathForResource:@"ABC" ofType:@"caf"]; ABC = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:_ABC] error:NULL]; [ABC play]; このようなコードになりました ここで思ったのですが 処理を実行する際、playだけを行ってくれればいいのに 上記コードだと2回目3回目の処理で毎回cafファイルを読み込みインスタンを生成する といった処理内容になってしまうのでしょうか? ツールを使用しメモリ使用率を確認したところAVAudioPlayerで メモリリークしているみたいです ログにはerror = 24 (Too many open files)と表示されます releaseもしていないのでそれも原因と考えられますが複数の音声を同時 もしくはバラバラ、もしくは同じ音声を連続で再生することもあるので releaseをどこに入れたらうまくいくのか理解できていません コードを書き込む位置も含めて簡潔でいいのでアドバイスをいただけるとありがたいです

  • setSelected関数のエラーについて

    xcode 7.1 (7B91b)を使用しています。 下記コードでビルドエラーが発生しております。 エラーの取り方についてご教示ください。 import UIKit override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } 1.override func setSelected(selected: Bool, animated: Bool)行でMethod does not override any method from its superclassが発生します。 Boolの後に「!」や「?」をつけてみましたがダメでした。 2. super.setSelected(selected, animated: animated)行でvalue of type UIViewController has no member setSelectedが発生しています。 xcode7.1では対応していないのでしょうか? 代変関数がありますか?使用方法間違っているのでしょうか? よろしくお願いします。

  • iphoneアプリ,UiTextViewでの画像挿

    現在iphoneアプリを作っていますが、UiTextViewにて絵文字(独自画像) の挿入ができてなくて困っています。 iphoneアプリの絵文字顔文字というアプリがありますが、あのアプリ同様の事をしたいのですがそのようなメソッド等ありますか? 調べてはみたのですが見つかりません。 ちなみにsetContentToHTMLStringやsetHtmlなどは非推奨かつ現在のXcode4.3ではエラーが発生します。

  • iphoneアプリ 実機転送エラー

    iphoneアプリを実機にインストールできなくなってしまいました。デバイスを選択し、Runをクリックすると"No matching provisioning profiles found"が表示され、さらにその画面のFix Issueをクリックすると "The password supplied for the account “×××@○○○” was rejected."が出てしまいます。そのままOKボタンをクリックすると、何事もなっかかのように、もとのプロジェクト作成画面に戻ってしまいます。このエラーは何が原因でしょうか? iOS Team Provisioning Profile.*を削除してしまったのですが、これも原因のひとつでしょうか?このプロヴィジョニングプロファイルは、デべロッパーのCertificates, Identifiers & Profilesにおいてxcodeの管理下にあるみたいな表示がなされていました。その後作成したプロヴィジョニングプロファイルは、xcodeのオーガナイザに表示はされていますが、デべロッパーのCertificates, Identifiers & Profilesではxcodeの管理下にあるみたいな表示は出ていません。 新しく作成したプロヴィジョニングプロファイルがしっかりxcodeとリンクしている感じがしません。これを解決する方法をご存知でしたら、是非お教えお願い致します。 追記:はじめはiOS Team Provisioning Profile.*(ワイルドカード)で実機転送が可能でしたが、端末はある一台に対してしか有効ではありませんでした。別の端末にアプリをインストールしようとすると、この質問で冒頭から書いているエラーが表示されていました。複数端末で実機テストしたかったので、一台にしか有効でないワイルドーカードを削除して、新規プロヴィジョニングプロファイルを作成し一からやり直そうとしたところ、どの端末でもエラーが発生するようになってしまった次第です。申し訳ありませんが、お知恵を拝借させてください。よろしくお願いします。

  • エラーでiPhoneのOSがアップロードできない

    iphone6sを使用しています。OSをアップロードするためiTunesに接続し、 更新を試みたところ以下のエラーメッセージが発生しアップロードが出来ません。 原因と解決方法がわかる方どうか宜しくお願いします。 「iPhone”自分のiPhoneの名前”用のソフトウェアをダウンロード中に問題が起きました。 不明なエラーが発生しました(9006)」 ネットワークの設定および接続を確認して、もう一度実行してください。

  • Xcode4のエラー(IPhoneアプリ)

    はじめまして。 IPhoneのアプリ作成に挑戦しています。 Xcode4のバージョンは 4.5.1です。 【はじめてのXcode4プログラミング】という参考書でIPhoneのカメラアプリを作る章があり、写真ライブラリから選択した画像を表示できるとのことです。 しかし、XcodeでRun(実行)すると、ViewController.mの最後2行【UIImage *originalImage =[info objectForkey:UIImagePickerControllerOriginalImage];】が赤くなり、【’dismissModalViewControllerAnimated’is deprecated: first deprecated in iOS 6.0】というエラー表示がでます。 全体のコードは下記の通りです。 ネットで調べてみましたが、解決方法がわかりません。 先に進めず困っています。 どうか解決方法を教えてください。 よろしくお願い致します。 ●ViewController.h// // ViewController.h // CameraApp // #import @interface ViewController : UIViewController - (IBAction)pressCameraButton:(id)sender; @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end ●ViewController.m // // ViewController.m // CameraApp // #import “ViewController.h” @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)pressCameraButton:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentModalViewController:picker animated:YES]; } - (void)imagePickerController:(UIImagePickerController*)Picker didFinishPickingMediaWithInfo:(NSDictionary*)info { [self dismissModalViewControllerAnimated:YES]; UIImage *originalImage = [info objectForkey:UIImagePickerControllerOriginalImage]; self.imageView.image = originalImage; } @end

  • iphoneアプリ申請organizerエラー

    iphoneアプリ申請作業のOrganizer-ArchivesでValidateしようとするとエラー(Your app contains non-public API usage.Please・・・)が発生して困っております。 (エラー画面キャプチャ添付) ネットで調べたところ、だいたいが、 ----------------------------- 【対処】 AdMob を最新版に変更(v6.2 → 6.5) xcodeでTARGETを選択し Build Settings->Search Paths->Library Search Pathsで 古いバージョンのAdMobのパスを削除 ----------------------------- この様な回答なのでやってはみたものの、現象が変わりません。 具体的なやり方が間違っているのかと思いますが、 AdMob(v6.11)をプロジェクトの下に配置して、 古いバージョンのAdMobのパスを削除という箇所は出来ておりません。 ■画面キャプチャ http://gyazo.com/a27ca48fc5d65619003e17825b039693 なにとぞ、解決の糸口をご教授ください。

  • iPhoneアプリ作成時のXcodeのエラー

    はじめまして。 iPhoneのアプリ作成に挑戦しています。 Xcode4のバージョンは 4.5.1です。 【はじめてのXcode4プログラミング】という参考書でIPhoneのカメラアプリを作る章があり、写真ライブラリから選択した画像を表示できるとのことです。 しかし、XcodeでRun(実行)すると、ViewController.mの最後から4行目【UIImage *originalImage = [info objectForkey:UIImagePickerControllerOriginalImage];】が赤くなり、【No visible @interface for 'NSDictionary' declares the selector 'objectForkey'】というエラー表示がでます。 全体のコードは下記の通りです。 ネットで調べてみましたが、解決方法がわかりません。 先に進めず困っています。 どうか解決方法を教えてください。 よろしくお願い致します。 ●ViewController.h// // ViewController.h // CameraApp // #import @interface ViewController : UIViewController - (IBAction)pressCameraButton:(id)sender; @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end ●ViewController.m // // ViewController.m // CameraApp // #import “ViewController.h” @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)pressCameraButton:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [[self presentViewController:picker animated:YES completion:nil];} - (void)imagePickerController:(UIImagePickerController*)Picker didFinishPickingMediaWithInfo:(NSDictionary*)info { [self dismissViewControllerAnimated:YES completion:nil]; UIImage *originalImage = [info objectForkey:UIImagePickerControllerOriginalImage]; // ↑↑ 上記の行でエラーが出ます self.imageView.image = originalImage; } @end

  • [iアプリ]エミュでは正常。携帯実機で実行すると途中でエラーが発生。

    現在iαppliTool for DoJa-4.1(FOMA)(以下DoJa4.1)でiアプリを作成しています。 DoJa4.1でビルド(正常終了) DoJa4.1で起動(エラーなどは無く正常にiアプリ起動) 携帯(D506i)で起動(エラーなどは無く正常にiアプリ起動) しかしゲームの途中(毎回同じ場面)で20回中一回ぐらいの確率でiアプリエラーが発生し強制終了のような状態が起こります。 DoJa4.1でも何度となく同じ操作をしていますが一度もエラーなどが発生し終了した事はありません。何故携帯側でこのようなエラーが発生してしまうのでしょうか? やはりどこかにiアプリ特有のバグのようなモノがあるのだとは思うのですが見つける事が出来ず困っています。 エミュレーターではエラーにならず、実機ではエラーになってしまうような事例などお分かりになりましたら教えていただければ幸いです。 どうぞ宜しくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう