0

Article (NSString * タイトルを含むカスタム クラス) オブジェクトでいっぱいの NSMutableArray は、1 つのメソッド (デバッガーでチェック) で適切に読み込まれますが、別のメソッドが呼び出されると、Article オブジェクトはいくつかのクラス変数 (タイトル変数)。

Article オブジェクトを NSMutableArray にロードするコードは次のとおりです。

for(int i=0;i<[articleURLs count];i++) {
    Article * a = [[Article alloc] init];
    [a initWithWebsite:[articleURLs objectAtIndex:i]];
    if([sectionTitle isEqualToString:@"Features"]) [featuresArticles addObject:a];
    if([sectionTitle isEqualToString:@"News"]) [newsArticles addObject:a];
    if([sectionTitle isEqualToString:@"Sports"]) [sportsArticles addObject:a];
    if([sectionTitle isEqualToString:@"Leisure"]) [leisureArticles addObject:a];
    if([sectionTitle isEqualToString:@"Voices"]) [voicesArticles addObject:a];
    if([sectionTitle isEqualToString:@"Editorial"]) [editorialArticles addObject:a];
    if([sectionTitle isEqualToString:@"Page 13"]) [page13Articles addObject:a];
    [a release];
}

これらの値を探す別のメソッドのコードを次に示します。

NSString *cellValue = @"ddd";
//NSArray * tempArray;
Article * a;
if([sectionTitle isEqualToString:@"Features"]) a = [featuresArticles objectAtIndex:indexPath.row];
if([sectionTitle isEqualToString:@"News"]) a = [newsArticles objectAtIndex:indexPath.row];
if([sectionTitle isEqualToString:@"Sports"]) a = [sportsArticles objectAtIndex:indexPath.row];
if([sectionTitle isEqualToString:@"Leisure"]) a = [leisureArticles objectAtIndex:indexPath.row];
if([sectionTitle isEqualToString:@"Voices"]) a = [voicesArticles objectAtIndex:indexPath.row];
if([sectionTitle isEqualToString:@"Editorial"]) a = [editorialArticles objectAtIndex:indexPath.row];
if([sectionTitle isEqualToString:@"Page 13"]) a = [page13Articles objectAtIndex:indexPath.row];

cellValue = [a getTitle];

私はこれで24時間以上立ち往生していますが、インターネットは役に立ちません. 助言がありますか?

4

2 に答える 2

0

[title retain];カスタムクラス(Article)では、 Article.mクラスへの設定が終わってから書く必要がありました。

于 2012-03-28T04:35:00.907 に答える
0

プロパティは、クラスのインターフェイスで適切に宣言されていない可能性があります。これは次のようになります。

@interface Article : NSObject
{
}

@property (nonatomic,copy) NSString *title;

@end

copy可変文字列を使用してプロパティを設定すると、クラスが文字列の不変コピーを作成するため、文字列プロパティに最適です。単純retainにすると、クラスが知らないうちに可変文字列が変更される可能性があります。

于 2012-03-27T20:50:26.577 に答える