Question

How to display an integer value in a UILabel in ViewDidLoad? I did for text and date and image but how to convert int to string. I was trying with following code

 NSString* label=[aa stringWithFormat:@"%d",((Comments *) [self.list objectAtIndex:0]).noofcomm]]; 
 [self.comments2 setText:label];

but didn't work.Please help me.How to set with the Integer with UILabel?

This is my comments.h

    @interface Comments : NSObject
{
    NSInteger iD;
    UIImage *photo;
    NSString *name;
    NSString *descrp;
    NSDate *date;
    NSString *msg;
    NSInteger noofcomm;
    NSInteger nooflikes;
}
@property(nonatomic,assign)NSInteger iD;
@property(nonatomic,retain)UIImage *photo;
@property(nonatomic,retain)NSString *name;
@property(nonatomic,retain)NSString *descrp;
@property(nonatomic,strong)NSDate *date;
@property(nonatomic,retain)NSString *msg;
@property(nonatomic,assign)NSInteger noofcomm;
@property(nonatomic,assign)NSInteger nooflikes;


@end

DBClass.m

     #import "DBClass.h"
#import "Comments.h"

@implementation DBClass
- (NSMutableArray *) getMyComments{
    NSMutableArray *wineArray = [[NSMutableArray alloc] init];
    @try {
        NSFileManager *fileMgr = [NSFileManager defaultManager];
        NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"ComntDB.sqlite"];
        BOOL success = [fileMgr fileExistsAtPath:dbPath];
        if(!success)
        {
            NSLog(@"Cannot locate database file '%@'.", dbPath);
        }
        if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
        {
            NSLog(@"An error has occured.");
        }
        const char *sql = "SELECT id, photo,name,descrp, time,msg,comments,likes FROM Com";
        sqlite3_stmt *sqlStatement;
        if(sqlite3_prepare(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK)
        {
            NSLog(@"Problem with prepare statement");
        }

        //
        while (sqlite3_step(sqlStatement)==SQLITE_ROW) {
            Comments *MyWine = [[Comments alloc]init];

            MyWine.iD = sqlite3_column_int(sqlStatement, 0);

            const char *raw = sqlite3_column_blob(sqlStatement, 1);
            int rawLen = sqlite3_column_bytes(sqlStatement, 1);
            NSData *data = [NSData dataWithBytes:raw length:rawLen];
            MyWine.photo = [[UIImage alloc] initWithData:data];
            MyWine.name = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement,2)];

            MyWine.descrp = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 3)];

            MyWine.date=[NSDate dateWithTimeIntervalSince1970:sqlite3_column_double(sqlStatement,4)];
             MyWine.msg = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement,5)];
            MyWine.noofcomm = sqlite3_column_int(sqlStatement, 6);
            MyWine.nooflikes = sqlite3_column_int(sqlStatement, 7);

            [wineArray addObject:MyWine];
        }
    }
    @catch (NSException *exception) {
        NSLog(@"An exception occured: %@", [exception reason]);
    }
    @finally {
        return wineArray;
    }

}

@end

RootViewController.m

    #import "RootViewController.h"
#import "Comments.h"
#import "DBClass.h"

@interface RootViewController ()

@end

@implementation RootViewController
@synthesize list;
@synthesize image2;
@synthesize name2;
@synthesize descrp2;
@synthesize msg2;
@synthesize date2;
@synthesize comments2;
@synthesize likes2;

- (void)viewDidLoad
{
    DBClass * mywines =[[DBClass alloc] init];
    self.list = [mywines getMyComments];
    [self.image2 setImage:((Comments *) [self.list objectAtIndex:0]).photo];
    [self.name2 setText:((Comments *) [self.list objectAtIndex:0]).name];

    [self.descrp2 setText:((Comments *) [self.list objectAtIndex:0]).descrp];

    NSDateFormatter* fmtr = [[NSDateFormatter alloc] init];
    [fmtr setDateFormat:@"MM/dd/yy"];
    NSString* label_str = [fmtr stringFromDate:((Comments *) [self.list objectAtIndex:0]).date];  
[self.date2 setText:label_str];
          [self.msg2 setText:((Comments *) [self.list objectAtIndex:0]).msg];
    //[self.comments2 setText:((Comments *) [self.list objectAtIndex:0]).noofcomm];
       // int solution = 1;
//    [self.comments2 setText:[NSString stringWithFormat:@"%d", solution]];
//    int solution2 = 1;
//    [self.likes2 setText:[NSString stringWithFormat:@"%d", solution2]];

    [super viewDidLoad];
}
- (void)viewDidUnload
{
    [self setImage2:nil];
    [self setName2:nil];
    [self setMsg2:nil];
    [self setDescrp2:nil];
    [self setComments2:nil];
    [self setLikes2:nil];
    [self setDate2:nil];
    [super viewDidUnload];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
Was it helpful?

Solution

NSInteger someInteger = myInteger;
NSString *someString = [NSString stringWithFormat:@"%d", someInteger];
myLabel.text = someString;

or

NSNumber *someNumber = @(myInteger);
NSString *someString = [someNumber stringValue];
myLabel.text = someString;

Both will work.

EDIT:

In your case, it will be something like this:

NSInteger someInteger = ((Comments *) [self.list objectAtIndex:0]).noofcomm;
NSString someString = [NSString stringWithFormat:@"%d", someInteger];
self.comments2.text = someString;

If it's still not working, FOR SURE the problem is somewhere else, and not with the conversion. Check with property noofcomm has a valid value, check if your label reference is ok (test with a random value before the conversion), and somethings like that.

OTHER TIPS

You need to build an NSString

int someInteger = 10;
NSString *someString = [[NSString alloc] initWithFormat:@"%d", someInteger];

You can use something like [NSString string_from_int:42] in LCategory since 0.1.3: https://github.com/superarts/LCategory

_lbl_yourLabel.text=[NSString stringWithFormat:@"%d",[[dic valueForKey:@"your integer value"] intValue]];

On the top left is your label named "yourLabel" , "dic" is your json response dictionary where all the data is coming in key value terms, "your integer value" is the key for which the value will be assign to the label "yourLabel", we have taken intValue because we cannot assign integer value directly to the label.

or you also can try below:

int anyInteger = 13;
NSString *yourString = [[NSString alloc] initWithFormat:@"%d", anyInteger];
self.yourLabel.text = yourString;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top