4

私はそれを解決できず、立ち往生しているので、これは奇妙に思えます。ストーリーボードを使用して、テーブルビューと詳細ビューの間を移動しています。テーブルビュークラス(TopStoriesViewController)から詳細クラス(DetailNewsViewController)に単一の(NewsRecord)オブジェクトを渡していたとき、それはうまくいきました。しかし、今では、単一の (NewsRecord) オブジェクトではなく、詳細クラスに移動するときに (NewsRecord) オブジェクトの配列を渡す必要があります。しかし、詳細クラスで NSArray * を作成し、詳細クラスのオブジェクトを使用して prepareForSegue メソッドの tableview クラスでそれにアクセスしようとすると、次のエラーが発生します。 ' コンパイル時に。items は「エントリ」から内容を取得する NSArray オブジェクトです

私の質問は、アイテムではなく TopStoriesViewController の DetailNewsViewController の getNewsDetails にアクセスできるのはなぜですか。

私のクラスは次のとおりです - TopStoriesViewController.m

#import "DetailNewsViewController.h"

     some code here....

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
         if ([[segue identifier] isEqualToString:@"ShowDetailedNews"]) {
         DetailNewsViewController *detailNewsVC = [segue destinationViewController];
         [segue.destinationViewController setHidesBottomBarWhenPushed:YES];
         NSInteger indexForNewsSelectedFromTBV = [[self.tableView indexPathForSelectedRow] row];
         [detailNewsVC setGetNewsDetails:[entries objectAtIndex:indexForNewsSelectedFromTBV]]; //This is working fine...
         detailNewsVC.items=entries;  //Error is occurring here...
    }
   } 

詳細ニュースViewController.h

#import "NewsRecord.h"
    @interface DetailNewsViewController : UIViewController {
       NewsRecord *getNewsDetails;

       some other declarations...

       NSArray *items;
   }
@property(nonatomic,retain) NewsRecord *getNewsDetails;
@property(nonatomic,retain) NSArray *items;
@end

DetailNewsViewController.m

#import "DetailNewsViewController.h"
@synthesize getNewsDetails,items;

NewsRecord.h

@interface NewsRecord : NSObject {
      NSString *newsTitle;
      NSString *newsDescription;
    }
    @property(nonatomic,retain) NSString *newsTitle;
    @property(nonatomic,retain) NSString *newsDescription;
    @end
4

1 に答える 1

0

アイテムに対してセッターを明示的に使用するようにしてください。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
     if ([[segue identifier] isEqualToString:@"ShowDetailedNews"]) 
     {

     DetailNewsViewController *detailNewsVC = [segue destinationViewController];
    ...
     [detailNewsVC setItems:entries];

     }
} 
于 2012-02-13T12:30:52.280 に答える