我无法在EasyTableView委托方法中访问我的变量

时间:2012-05-09 11:39:39

标签: iphone objective-c uitableview

我使用“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 

    }

为什么访问照片的结果不同?我该如何解决?

2 个答案:

答案 0 :(得分:0)

使用照片作为属性

@property (nonatomic, retain) NSMutableArray* photos;

并在实施中

@synthesize photos = photos;

现在可以在代表中访问

答案 1 :(得分:0)

photos变量未保留您指定给它的数组。取消分配时,内存将被重新用于指向CALayer对象。如果照片是保留属性,则应使用self.photos = array;进行分配。如果它只是一个简单的变量,那么直接分配它而不是使用array