2010-10-29 192 views
6

这里我addsubviews(UIImageViews)它都可以在模拟器上工作,但不在设备上(iOS 4.1)wtf!?在iPhone模拟器上工作,但不在设备上

- (void)addChips:(int)value { 
UIImage *chipImage; 
switch (value) { 
    case 5: 
     chipImage = [UIImage imageNamed:@"5chip"]; 
     break; 
    case 25: 
     chipImage = [UIImage imageNamed:@"25chip"]; 
     break; 
    case 100: 
     chipImage = [UIImage imageNamed:@"100chip"]; 
     break; 
    case 500: 
     chipImage = [UIImage imageNamed:@"500chip"]; 
     break; 
    default: 
     break; 
} 

int chipCount = [chipsOnBet count]; 
UIImageView *addChip = [[UIImageView alloc] initWithImage:chipImage]; 
addChip.opaque = YES; 
addChip.frame = CGRectMake((kStackOffset * chipCount) + 131, 268, 57, 57); 
[self.view addSubview:addChip]; 
[chipsOnBet addObject:addChip]; 
[addChip release]; 
} 

回答

19
  1. 确保你写的是正确的文件名,iOS区分大小写,模拟器不是。
  2. 确保你有适当的视网膜的文件,如果你只对iPhone4的
+0

Case Sensitivity为我解决了类似问题 - 您可以使用lowercaseString或uppercaseString函数使其一致。感谢Alin – Brett 2011-08-04 23:37:03

3

我找到了文档中的答案:

区分大小写:iPhone OS使用 区分大小写的文件系统,不同于通过使用 不区分大小写的文件系统中的 模拟器默认为 。确保在代码中访问 的资源的大小写敏感性 与区分大小写的文件名 匹配。

例如,如果我们的文件名是 “YourExampleImage.png”:

好:[UIImage的 imageNamed:@ “YourExampleImage.png”]

错误:[UIImage的 imageNamed:@“YourExampleImage .PNG “]

错误:[UIImage的 imageNamed:@” yourexampleimage.png“]

所以我只需要确保我的图像名称与我的资源相同。所以在我的情况下,我应该把5芯片而不是5芯片。

+1

模拟器是否区分大小写应取决于您的Mac的FS。您可以将HFS +设置为区分大小写,但默认情况下它不区分大小写,但保留大小写。 – DarkDust 2010-10-29 09:01:14

0

测试你要使用你的形象,名称。不适用于图像扩展。您应该使用完整图像名称

[UIImage imageNamed:@"a.png"]; 

确保图像名称与您将其存储在资源文件夹中相同。

+0

自引入iOS4以来,如果您引用项目中加载的资源,则不必再提供文件扩展名 – 2010-10-29 10:29:22

相关问题