次のコードを使用して、「myDict」という辞書ファイルに格納されている1または0の値を確認しています。位置'block003stored'は値1であり、他のすべての位置では0です。次のコードを使用すると、すべての位置で常に0が返されます。
for (int i = 1 ; i < 100 ; i++) {
if(myDict)
{
UIImageView *imageV = (UIImageView *)[self.view viewWithTag:i];
int myInt = [[myDict objectForKey:@"block%.3istored"] intValue];
NSLog (@"value of i %d", i);
NSLog (@"myInt %d", myInt);
if (myInt == 1) imageV.hidden = FALSE;
}
}
}
ただし、objectForKeyを具体的に@ "block003stored"に変更すると、次のようになります。
int myInt = [[myDict objectForKey:@"block003stored"] intValue];
正しい値の1が返されます。001、002、003などの代わりに%.3iを使用すると、コードが機能しない理由がわかりません。