可能重复:
access to array object
我有一个数组,其中包含我的xib文件中的图像和imageview。 现在, 我想在我的imageview中查看我的数组包含的第一个对象(图像)。 我试着这几个小时,但我没有成功。我该怎么做??
mt数组减速:
photoArray = [[NSMutableArray alloc] init];
PhotoItem *photo1 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"1.jpg"] name:@"roy rest" photographer:@"roy"];
PhotoItem *photo2 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"2.jpg"] name:@"roy's hand" photographer:@"roy"];
PhotoItem *photo3 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"3.jpg"] name:@"sapir first" photographer:@"sapir"];
PhotoItem *photo4 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"4.jpg"] name:@"sapir second" photographer:@"sapir"];
[photoArray addObject:photo1];
[photoArray addObject:photo2];
[photoArray addObject:photo3];
[photoArray addObject:photo4];
我尝试使用的代码:
imgView = [[UIImageView alloc] initWithImage:[photoArray objectAtIndex:0]];
谢谢!
答案 0 :(得分:1)
问题的答案非常简单,如果您不熟悉这一点,请尝试分步进行。
array: photoarray
imageView in xib : imgView
imgView =[UIImageView alloc]init];
imgView.image=[UIImage imageNamed:[photoarray objectatindex:0]];
这将满足您的问题。
答案 1 :(得分:0)
您的照片数组不包含图片,它包含自定义的PhotoItem对象。你需要从该对象中获取UIImage。我假设你有一个属性集,可能在PhotoItem
上命名为照片。你需要打个电话。
imgView = [[UIImageView alloc] initWithImage:[[photoArray objectAtIndex:0] photo]];
// or
imgView = [[UIImageView alloc] initWithImage:[photoArray objectAtIndex:0].photo];
<强>更新强>
您必须拥有属性才能访问有关对象的信息。您需要重建PhotoItem类,以便为要访问的内容(如照片,名称和摄影师)提供属性。无法按照您尝试的方式访问实例变量。
// PhotoItem.m
@interface PhotoItem : NSObject
{
// Instance Variables aren't accessible outside of the class.
}
@property (nonatomic, strong) UIImage *photo;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *photographer;
- (id) initWithPhoto:(UIImage)image name:(NSString*)stringA photographer:(NSString*)stringB;
你也需要重写init。
// PhotoItem.h
@implementation PhotoItem
@synthesize photo, name, photographer;
- (id) initWithPhoto:(UIImage)image name:(NSString*)stringA photographer:(NSString*)stringB
{
self = [super init];
if (self) {
photo = image;
name = stringA;
photographer = stringB;
}
}
然后访问它的任何东西
PhotoItem *photo1 = [[PhotoItem alloc] initWithPhoto:[UIImage imageNamed:@"1.jpg"] name:@"roy rest" photographer:@"roy"];
photo1.photo // returns UIImage
photo1.name // returns NSString
photo1.photographer // returns NSString
因此,如果它们是数组中的对象,那么它将是
[photoArray objectAtIndex:0] // returns your PhotoItem Object
[[photoArray objectAtIndex:0] photo] // returns that PhotoItem Object then gets the photo out of it returning a UIImage in total.