私はこれを理解できません。誰かが助けてくれることを願っています。
これは、ViewController.h ファイルのコードです。
{
NSArray *bgImages;
int currentBackground;
bool hasShrunk;
bool hasMoved;
CGAffineTransform translate;
CGAffineTransform sizeShrink;
CGAffineTransform sizeGrow;
}
ViewController.m ファイルのコードの一部を次に示します。
- (void)viewDidLoad {
hasMoved = NO;
hasShrunk = NO;
currentBackground = 0;
bgImages = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"WallPaper_01.png"],
[UIImage imageNamed:@"WallPaper_02.png"],
[UIImage imageNamed:@"WallPaper_03.png"],
[UIImage imageNamed:@"WallPaper_04.png"],
[UIImage imageNamed:@"WallPaper_05.png"],
nil];
sizeShrink = CGAffineTransformMakeScale(.25,.25);
sizeGrow = CGAffineTransformMakeScale(1,1);
_myBackground.image = [bgImages objectAtIndex:currentBackground];
}
これが問題です。このコードとプロジェクト全体がシミュレーターで問題なく動作します。出力を実際の iPhone デバイスに変更すると失敗します。bgImages という配列の割り当てでコードが失敗しています。viewDidLoad にブレークポイントを配置して行ごとにステップ インすると、配列割り当て行まで実行されてからジャンプします。次に、行を実行しようとすると:
_myBackground.image = [bgImages objectAtIndex:currentBackground];
配列が空であるため、失敗します。これがシミュレーターでどのように機能するのかわかりませんが、実際のデバイスでは機能しません。コードは間違っているようには見えませんが、なぜこのように動作するのかを理解しようとしています。間違ってコーディングしましたか?