我使用“EasyTableView”这是一个扩展UITableView。我遇到如下问题:
- (void)viewDidLoad
{
NSArray *array = [[NSArray alloc] initWithObjects:@"14.jpg",nil];
photos = array;
[array release];
[photos objectAtIndex:0]; //this "photos" can be access
}
但是当我尝试访问委托方法中的“照片”时:
- (void)easyTableView:(EasyTableView *)easyTableView setDataForView:(UIView *)view forIndexPath:(NSIndexPath *)indexPath {
NSInteger r = [indexPath row]; // r = 0
NSString *imagePath = [photos objectAtIndex:r]; //this line cause : reason: '-[CALayer objectAtIndex:]: unrecognized selector sent to instance
}
为什么访问照片的结果不同?我该如何解决?
答案 0 :(得分:0)
使用照片作为属性
@property (nonatomic, retain) NSMutableArray* photos;
并在实施中
@synthesize photos = photos;
现在可以在代表中访问
答案 1 :(得分:0)
photos
变量未保留您指定给它的数组。取消分配时,内存将被重新用于指向CALayer对象。如果照片是保留属性,则应使用self.photos = array;
进行分配。如果它只是一个简单的变量,那么直接分配它而不是使用array
。