0

UITableViewを拡張した「 EasyTableView 」を使用しています。私は以下のような問題に遭遇します:

- (void)viewDidLoad
    {
        NSArray *array = [[NSArray alloc] initWithObjects:@"14.jpg",nil];
        photos = array;
        [array release];
        [photos objectAtIndex:0];  //this "photos" can be access
    }

しかし、delegateメソッドで「写真」にアクセスしようとすると:

- (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 

    }

写真にアクセスする結果が異なるのはなぜですか?どうすれば修正できますか?

4

2 に答える 2

0

写真をプロパティとして使用する

@property (nonatomic, retain) NSMutableArray* photos;

そして実装中

@synthesize photos = photos;

デリゲートでアクセスできるようになりました

于 2012-05-09T11:44:52.550 に答える
0

photos変数は、割り当てた配列を保持していません。割り当てが解除されると、メモリは CALayer オブジェクトを指すために再利用されます。写真が保有財産である場合は、 を使用self.photos = array;して割り当てを行う必要があります。単純な変数の場合は、 を使用する代わりに直接割り当てますarray

于 2012-05-09T11:45:24.587 に答える