Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.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 使用NSString显示数组内容_Objective C_Ios_Uiimage_Nsarray_Uilabel - Fatal编程技术网

Objective c 使用NSString显示数组内容

Objective c 使用NSString显示数组内容,objective-c,ios,uiimage,nsarray,uilabel,Objective C,Ios,Uiimage,Nsarray,Uilabel,我已加载一个数组: currentBackground=4; bgImages = [[NSArray alloc] initWithObjects: [UIImage imageNamed:@"mystery_01 320x460"], [UIImage imageNamed:@"mystery_02 320x460"], [UIImage imageNamed:@"mystery_03 320x460"],

我已加载一个数组:

currentBackground=4;
bgImages = [[NSArray alloc] initWithObjects:
            [UIImage imageNamed:@"mystery_01 320x460"],
            [UIImage imageNamed:@"mystery_02 320x460"],
            [UIImage imageNamed:@"mystery_03 320x460"],
            [UIImage imageNamed:@"mystery_04 320x460"],
            [UIImage imageNamed:@"mystery_05 320x460"],
            nil];
现在我想在标签中显示当前正在显示的图像的文件名。我想:

 mainLabel.text = [NSString stringWithFormat:@"bgImages= %@",[bgImages objectAtIndex:currentBackground]];

可以,但我得到的只是十六进制代码。我有一个按钮,可以很好地滚动图像。但是,当我试图显示图像名称时,我得到的只是我认为该名称所在的地址。

图像的文件名不存储在UIImage对象中。UIImage类中没有此类属性。你必须自己储存这些名字。也许您可以将文件名存储在一个数组中,并使用此数组从文件中检索图像,然后在以后查找图像文件名:

imageFileNames = [[NSArray alloc] initWithObjects: 
                           @"mystery_01 320x460",
                           @"mystery_02 320x460",
                           @"mystery_03 320x460",
                           @"mystery_04 320x460",
                           @"mystery_05 320x460",
                           nil];
检索图像(如果愿意,可以使用for-in循环进行此操作):

从文件名数组中获取文件名:

mainLabel.text = [NSString stringWithFormat:@"bgImages= %@",[imageFileNames objectAtIndex:currentBackground]];

在字符串格式中有效地使用
%@
只需调用对象的
描述
方法。您看到的十六进制值只是对象指针的值-这是NSObject的
description
方法的默认实现

请注意,对于NSString对象,
description
方法返回。。。您猜对了-NSString对象本身

在您的情况下,要显示图像名称,您必须保留它们,因为UIImage的
说明
似乎不返回图像名称

您还可以创建一个UIImage子类,它可以记住名称,但不确定是否值得这么麻烦

mainLabel.text = [NSString stringWithFormat:@"bgImages= %@",[imageFileNames objectAtIndex:currentBackground]];