random generator to obtain data from array not displaying

Posted by Yang Jie Domodomo on Stack Overflow See other posts from Stack Overflow or by Yang Jie Domodomo
Published on 2012-07-09T08:38:38Z Indexed on 2012/07/09 9:15 UTC
Read the original article Hit count: 350

Filed under:
|
|

I know theres a better solution using arc4random (it's on my to-try-out-function list), but I wanted to try out using the rand() and stand(time(NULL)) function first. I've created a NSMutableArray and chuck it with 5 data. Testing out how many number it has was fine. But when I tried to use the button function to load the object it return me with object <sampleData: 0x9a2f0e0>

- (IBAction)generateNumber:(id)sender {

        srand(time(NULL));
    NSInteger number =rand()% ds.count ;
    label.text = [NSString stringWithFormat:@"object %@", [ds objectAtIndex:number] ];
    NSLog(@"%@",label.text);

 }

While I feel the main cause is the method itself, I've paste the rest of the code below just incase i made any error somewhere.

ViewController.h

#import <UIKit/UIKit.h>
#import "sampleData.h"
#import "sampleDataDAO.h"
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *label;
@property (weak, nonatomic) IBOutlet UIButton *onHitMePressed;
- (IBAction)generateNumber:(id)sender;
@property(nonatomic, strong) sampleDataDAO *daoDS;
@property(nonatomic, strong) NSMutableArray *ds;
@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize label;
@synthesize onHitMePressed;
@synthesize daoDS,ds;


- (void)viewDidLoad
{
    [super viewDidLoad];
    daoDS = [[sampleDataDAO alloc] init];
    self.ds = daoDS.PopulateDataSource;
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [self setLabel:nil];
    [self setOnHitMePressed:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (IBAction)generateNumber:(id)sender {

    srand(time(NULL));
NSInteger number =rand()% ds.count ;
label.text = [NSString stringWithFormat:@"object %@", [ds objectAtIndex:number] ];
NSLog(@"%@",label.text);

} @end

sampleData.h

#import <Foundation/Foundation.h>

@interface sampleData : NSObject
@property (strong,nonatomic) NSString * object;
@end

sampleData.m

#import "sampleData.h"

@implementation sampleData
@synthesize object;
@end

sampleDataDAO.h

#import <Foundation/Foundation.h>
#import "sampleData.h"
@interface sampleDataDAO : NSObject
@property(strong,nonatomic)NSMutableArray*someDataArray;

-(NSMutableArray *)PopulateDataSource;
@end

sampleDataDAO.m

#import "sampleDataDAO.h"

@implementation sampleDataDAO
@synthesize someDataArray;

-(NSMutableArray *)PopulateDataSource
{
    someDataArray = [[NSMutableArray alloc]init];

    sampleData * myData = [[sampleData alloc]init];
    myData.object= @"object 1";
    [someDataArray addObject:myData];
    myData=nil;



   myData = [[sampleData alloc] init];
    myData.object= @"object 2";
    [someDataArray addObject:myData];
    myData=nil;

    myData = [[sampleData alloc] init];
    myData.object= @"object 3";
    [someDataArray addObject:myData];
    myData=nil;

    myData = [[sampleData alloc] init];
    myData.object= @"object 4";
    [someDataArray addObject:myData];
    myData=nil;

    myData = [[sampleData alloc] init];
    myData.object= @"object 5";
    [someDataArray addObject:myData];
    myData=nil;



    return someDataArray;
}


@end

© Stack Overflow or respective owner

Related posts about objective-c

Related posts about ios