1

UIImage次のコードを使用して、fromWebサービスをNSMutableArrayに追加しようとしています。

for (int i=0; i<[totalRowCountString intValue]; i++)
{    
    NSString *criticsRatingString = [[JSON valueForKeyPath:@"movies.ratings.critics_rating"] componentsJoinedByString:@" "];
    NSLog(@"criticsRatingString: %@", criticsRatingString);

    if ([criticsRatingString isEqualToString:@"Certified Fresh"])
    {
        self.ratingImage = [UIImage imageNamed:@"rt_certified_fresh.png"];
    }
    else if ([criticsRatingString isEqualToString:@"Fresh"])
    {
        self.ratingImage = [UIImage imageNamed:@"rt_fresh.png"];
    }
    else if ([criticsRatingString isEqualToString:@"Rotten"])
    {
        self.ratingImage = [UIImage imageNamed:@"rt_rotten.png"];
    }
    else if ([criticsRatingString isEqualToString:@"Spilled"])
    {
        self.ratingImage = [UIImage imageNamed:@"rt_spilled.png"];
    }
    else if ([criticsRatingString isEqualToString:@"Upright"])
    {
        self.ratingImage = [UIImage imageNamed:@"rt_upright.png"];
    }

    [tomatorRatingImages addObject:self.ratingImage];
    NSLog(@"tomatoRatingImages: %@", tomatorRatingImages);
}

しかし、tomatoRatingImagesのNSLogはNULLを返します。NULLを返す理由はありますか?

更新:NSMutableArrayはviewWillAppearメソッドですでに初期化されています。

4

4 に答える 4

3

オブジェクトを追加する前に、配列を初期化する必要があります。

NSMutableArray *tomatorRatingImages = [[NSMutableArray alloc] init];
于 2013-02-14T03:09:38.327 に答える
2
NSMutableArray * tomatorRatingImages =[[NSMutableArray alloc]init];

[tomatorRatingImages  addObject:[UIImage imageNamed:@"rt_spilled.png"]];

[tomatorRatingImages  addObject:[UIImage imageNamed:@"rt_spilled1.png"]];

[tomatorRatingImages  addObject:[UIImage imageNamed:@"rt_spilled2.png"]];

NSMutableArrayに複数の画像を入力できます。

于 2013-02-14T07:35:57.980 に答える
1

NSMutableArrayインスタンスのプロパティがある場合は、それを初期化するためにgetterを作成することをお勧めします。変数の初期化を処理し、必要な場合にのみロードされます。

   -(NSMutableArray *) tomatorRatingImages {
         if(_tomatorRatingImages == nil) {
               _tomatorRatingImages = [NSMutableArray alloc] init];
         }
         return _tomatorRatingImages;
    }
于 2013-02-14T09:30:41.777 に答える
0

このように初期化します

NSMutableArray * tomatorRatingImages =[[NSMutableArray alloc]initWithCapacity:3];
于 2013-02-14T06:51:54.830 に答える