我是xcode的新手,我正在玩图像数组和NSMutableArray。当我运行下面的代码时,只需打印出图像的名称,例如“image1.png”。任何解决这个问题的技巧都将不胜感激。谢谢。
- (NSMutableArray*)restaurantArray;
{
if (_restaurantArray == nil) {
_restaurantArray = [[NSMutableArray alloc] initWithObjects:
@"image1.png",
@"image2.png",
@"image3.png",
nil];
}
return _restaurantArray;
}
-(NSString*) randomRestaurant
{
int random = arc4random_uniform(self.restaurantArray.count);
return [self.restaurantArray objectAtIndex:random];
}
答案 0 :(得分:1)
你也可以这样做。
- (NSMutableArray*)restaurantArray;
{
if (_restaurantArray == nil) {
_restaurantArray = [[NSMutableArray alloc] initWithObjects:[UIImage imageNamed:@"image1.png"],
[UIImage imageNamed:@"image2.png"],
[UIImage imageNamed:@"image3.png"],
nil];
}
return _restaurantArray;
}
答案 1 :(得分:0)
你是说这个吗?:
NSString *imageName = [self randomRestaurant];
UIImage *image = [UIImage imageName:imageName];
答案 2 :(得分:0)
如果要显示图像,请执行以下操作:
假设您有一个imageview名称imgView,
imgView.image = [UIImage imageNamed:[self randomRestaurant]];
或者,如果您只是想要图像,请调用它:
UIImage *img = [UIImage imageNamed:[self randomRestaurant]];
在给定代码中,您只是返回图像的名称,而不是实际图像。如果你想要一个图像数组,那么你可以这样做:
-(NSMutableArray*) restaurantArray;
{
if (_restaurantArray == nil) {
UIImage *img = [UIImage imageNamed:@"image1.png"];
UIImage *img1 = [UIImage imageNamed:@"image2.png"];
UIImage *img2 = [UIImage imageNamed:@"image3.png"];
_restaurantArray = [[NSMutableArray alloc] initWithObjects:
img,
img1,
img2,
nil];
}
return _restaurantArray;
}
-(UIImage*) randomRestaurant
{
int random = arc4random_uniform(self.restaurantArray.count);
return [self.restaurantArray objectAtIndex:random];
}
希望这会有所帮助.. :)