0

NSMutableArray があり、そのデータを別のビューで使用したいと考えています。調べてみると、indexOfObject を使用してデータを読み取ることができることがわかりましたが、私の NSMutableArray には複数の値があり、NSMutableArray から特定のフィールドを取得する方法がわかりません。

どんな助けでも大歓迎です。

私は現在 IBAction onStartPressed で立ち往生しています。ラインで

    self.clueHint.text = ds[0].initialClue;
//or
    self.clueHint.text = ds objectAtIndex:0 initialClue;

関連する他のファイルとコードを表示しました。

CluData.h #インポート

@interface ClueData : NSObject
@property(nonatomic, strong) NSString * clueName;
@property(nonatomic, strong) NSString * initialClue;
@property(nonatomic, strong) NSString * clueHint1;
@property(nonatomic, strong) NSString * clueHint2;

@property(nonatomic, strong) NSString * clueAnswer;
@property(nonatomic, strong) UIImage * clueImage;
@end

ClueDataDAO.h

#import <Foundation/Foundation.h>
#import "ClueData.h"
@interface ClueDataDAO : NSObject
@property(strong, nonatomic) NSMutableArray * clueDataArray;

-(NSMutableArray *) PopulateDataSource;
@end

ClueDataDAO.m

#import "ClueDataDAO.h"

@implementation ClueDataDAO
@synthesize clueDataArray;
-(NSMutableArray *) PopulateDataSource
{
    clueDataArray = [[NSMutableArray alloc]init];
     ClueData * sampleData = [[ClueData alloc]init];

    sampleData.clueName = @"Tropical Fruit Tree";
    sampleData.initialClue = @"Where all the Tropical trees are planted.";
    sampleData.clueHint1 = @"It is located at Area 10";
    sampleData.clueHint2 = @"It could be found near Eco Lake";
    sampleData.clueAnswer = @"Fruit tree collection";
    NSString * file=[[NSBundle mainBundle]pathForResource:@"FruitTreeCollection" ofType:@"jpg"];
    sampleData.clueImage = [UIImage imageWithContentsOfFile:file];
    [clueDataArray addObject:sampleData];
    sampleData=nil;

    return clueDataArray;
}
@end

GamePageViewController.M

- (void)viewDidLoad
{
    [super viewDidLoad];
    daoDS = [[ClueDataDAO alloc]init];
    self.ds = daoDS.PopulateDataSource; //load pre-build NSMutableArray
    self.answer.delegate = self;
    // Do any additional setup after loading the view.
}

- (IBAction)onStartPressed:(id)sender {

    //initiate load object
// stuck at here :(

    ClueData * currentClue = [ds objectAtIndex:0]; // app got terminate at this line of code
self.clueHint.text = [currentClue initialClue];


}
4

1 に答える 1

1

IBAction で、最初に正しい変数にキャスト/保存します。

ClueData * sampleData = [ds objectAtIndex:0];

次に、self.clueHint.text= [sampleData initialClue];

例として

于 2012-10-14T11:30:57.947 に答える