が問題です:私は、GIF効果などのiOSデバイス上で、シーケンス図を表示したい、と私はUIImageViewのアニメーション機能を使用するので、以下のメソッドを実装します。これまでなぜobjective-cに矛盾の戻り値がある場合、これが起こりましたか?ここで
// Animation.m
// @files: diagrams' array
// @fileDir: file directory
// @imageview: Just UIImageView
//
- (void)showSeqDiagram:(NSArray*)files
fileDirect:(NSString*)fileDir
imageView:(UIImageView*)imageview
{
int cnt = [files count];
NSMutableArray * images = [NSMutableArray arrayWithCapacity:cnt];
for (id file in files)
{
NSString * imageName = [NSString stringWithFormat:@"%@/%@", fileDir, file];
UIImage * image = [UIImage imageNamed:imageName];
if(!image)
continue;
[images addObject:image];
}
imageview.animationImages = images;
imageview.animationDuration = 5;
imageview.animationRepeatCount = 1;
[imageview startAnimating];
}
を、物事がうまくいきました。
//Animation.h
- (UIImageView*)showSeqDiagram:(NSArray*)files
fileDirect:(NSString*)fileDir
imageView:(UIImageView*)imageview;
と私は、このメソッドを呼び出す - (無効)loadViewメソッド
- (void)loadview
{
......
[self showSeqDiagram:files fileDirect:fileDir imageView:imageview];
......
}
は、位置を呼んで墜落したと:私はこのようなヘッダファイルに戻り値の型の宣言についての判断が誤りiPhone5シミュレータとデバイス、iOS verison9.3でEXC_BAD_ACCESS(code = 1、)をスローします。
iPhone6シミュレータ、iOSバージョン9.3で時折クラッシュする。
iOS 7-9でテストしたiPhone6/6plusデバイスとiPhone6plusシミュレータでクラッシュすることはありません。
私はそれが間違っていることを知っていますが、なぜこれが起こったのか知りたいのですが、誰かが説明をすることができますか?事前のおかげで〜
imageViewをどこで取ったのですか?それはストーリーボード/ Xibかプログラムかプログラムですか? – Janmenjaya
戻り値の型を.hと.mの順に変更します。これは同じメソッドです。ブレークポイントを設定して、そのメソッド(行)のどこに問題があるかを調べるか、メソッドの宣言がその実装に一致しないためにブレークポイントを設定しようとします。 – Larme
uは* .hと* .mの異なる戻り値をdelcareすることができます。コンパイラは警告をスローするだけでなく、他のファイルでも呼び出すことができ、実際には一致します。それを試してみてください! –