Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Xcode:映像数组无法在设备上实例化_Objective C_Ios_Xcode - Fatal编程技术网

Objective c Xcode:映像数组无法在设备上实例化

Objective c Xcode:映像数组无法在设备上实例化,objective-c,ios,xcode,Objective C,Ios,Xcode,我有一个应用程序在模拟器上运行得很好,但在我的iPodtouch(第四代)上失败了,我想知道为什么。失败的部分是一个简单的交互式菜单,它在UINavigationController的根目录上显示六幅图片,然后推送一个viewController,该viewController实例化一组食物图像,创建一个并排保存所有图像的视图,并将查看区域移动到与在根视图中单击的图像相关的图像上。当我在设备上运行它时,数组只使用指向两个图像的指针进行实例化,当数组用于并排创建图像时,会引发异常 //code f

我有一个应用程序在模拟器上运行得很好,但在我的iPodtouch(第四代)上失败了,我想知道为什么。失败的部分是一个简单的交互式菜单,它在
UINavigationController
的根目录上显示六幅图片,然后推送一个viewController,该viewController实例化一组食物图像,创建一个并排保存所有图像的视图,并将查看区域移动到与在根视图中单击的图像相关的图像上。当我在设备上运行它时,数组只使用指向两个图像的指针进行实例化,当数组用于并排创建图像时,会引发异常

//code from the pushed view controller
- (void)setupScrollView:(UIScrollView*)scrMain {
    // we have 6 images here.
    // we will add all images into a scrollView & set the appropriate size.
    NSMutableArray *array = [NSArray arrayWithObjects:
                        [UIImage imageNamed:@"shrimpquesadilla.jpg"],
                        [UIImage imageNamed:@"pulledpork.jpg"],
                        [UIImage imageNamed:@"filetMignon.jpg"],
                        [UIImage imageNamed:@"Reuben.jpg"],
                        [UIImage imageNamed:@"cajunshrimp.jpg"],
                        [UIImage imageNamed:@"primerib.jpg"], nil];
    NSLog(@"stuff: %@", array);
    for (int i=1; i<=6; i++) {
        UIImage *image = [array objectAtIndex:(i-1)];
        UIImageView *imgV = [[UIImageView alloc] 
            initWithFrame:CGRectMake((i-1)*scrMain.frame.size.width, 
            0, scrMain.frame.size.width, (scrMain.frame.size.height - 90))];
        imgV.contentMode=UIViewContentModeScaleToFill;
        [imgV setImage:image];
        imgV.tag=i+1;
        [scrMain addSubview:imgV];
    }
    [scrMain setContentSize:CGSizeMake(scrMain.frame.size.width*6, 
         scrMain.frame.size.height)];
    [scrMain scrollRectToVisible:CGRectMake(self.count*scrMain.frame.size.width, 
         0, scrMain.frame.size.width, scrMain.frame.size.height) animated:YES];
}
//来自推式视图控制器的代码
-(无效)设置滚动视图:(UIScrollView*)scrMain{
//我们这里有6张图片。
//我们将把所有图像添加到滚动视图中,并设置适当的大小。
NSMUTABLEARRY*array=[NSArray arrayWithObjects:
[UIImage ImageName:@“shrimpquesadilla.jpg”],
[UIImage ImageName:@“pulledpork.jpg”],
[UIImage ImageName:@“filetMignon.jpg”],
[UIImage ImageName:@“Reuben.jpg”],
[UIImage ImageName:@“cajunshrimp.jpg”],
[UIImage ImageName:@“primerib.jpg”],无];
NSLog(@“stuff:%@”,数组);

对于(int i=1;iiOS有一个区分大小写的文件系统。@“filetMignon.jpg”文件中存在大小写问题,使其解析为nil image并提前结束数组元素

要解决这个问题,请确保在加载图像时使用相同的大小写命名图像(最好始终使用小写图像名称)


这不是模拟器上的问题,因为OS X正在使用case-Insensive(99%的情况下)文件系统,这意味着,@“filetMignon.jpg”和@“filetMignon.jpg”将解析为同一个文件。

iOS有一个case-sensetive文件系统。您在@“filetMignon.jpg”文件中遇到case问题,使其解析为零映像并提前结束数组元素

要解决这个问题,请确保在加载图像时使用相同的大小写命名图像(最好始终使用小写图像名称)


这在模拟器上不是一个问题,因为OS X使用的是case Insensive(99%的情况下)文件系统,这意味着,@“filetMignon.jpg”和@“filetMignon.jpg”将解析为同一个文件。

我会尝试重新排序图像,并找出问题是否出在
filetMignon.jpg
本身(返回
nil
,因此终止列表)或者同时加载这六个jpg文件所消耗的内存量。我还建议(a)只加载需要在屏幕上显示的图像;(b)根据屏幕分辨率调整图像大小。iOS和模拟器版本是否有单独的目标?我会尝试删除文件扩展名。例如。
[UIImage imageNamed:@“shrimpquesadilla”]
Max,你能详细解释一下吗?我不确定你的意思。我会尝试重新排列图像,并找出问题是否出在
filetMignon.jpg
本身(返回
nil
,因此终止列表)或者同时加载这六个jpg文件所消耗的内存量。我还建议(a)只加载需要在屏幕上显示的图像;(b)根据屏幕分辨率调整图像大小。iOS和模拟器版本是否有单独的目标?我会尝试删除文件扩展名。例如。
[UIImage ImageName:@“shrimpquesadilla”]
Max,你能详细解释一下吗?我不确定你的意思。模拟器中的大小写是否也敏感?我确实有大小写不一致的问题,但在调整代码以反映大小写敏感的文件名时没有任何更改。更新:我有两个大小写不一致的问题,一个接一个。一旦我发现并更改了第二个,它工作得很好。非常感谢!我不小心有小写的image.png,但我有的文件是image.png,这导致应用程序在设备上失败,但在模拟器中工作。这让我发疯。谢谢你的帖子:)模拟器中是否也区分大小写?我确实存在大小写不一致的问题,但当我调整代码以反映区分大小写的文件名时,没有任何更改。更新:我有两个大小写不一致的问题,一个接一个。一旦我发现并更改了第二个,它就工作得很好。非常感谢!我意外地得到了小写的image.png,但是我拥有的文件是image.PNG,它导致应用程序在设备上失败,但在模拟器中工作。这让我抓狂。谢谢你的帖子:)
2012-08-20 09:51:23.812 DemoTabbed[1545:11603] stuff: (
    "<UIImage: 0x7931150>",
    "<UIImage: 0x6e63270>",
    "<UIImage: 0x6e67700>",
    "<UIImage: 0x6e68040>",
    "<UIImage: 0x6e5c700>",
    "<UIImage: 0x6e64210>"
)
2012-08-20 10:26:50.211 DemoTabbed[2128:707] stuff: (
    "<UIImage: 0x197e20>",
    "<UIImage: 0x181270>"
)