2013-08-18 47 views
2

如何在的ViewDidLoad中显示整数值?我为文本和日期和图像,但如何将int转换为字符串。我试图用下面的代码显示标签中的整数值,int转换为字符串?

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

但没有工作。请帮助我。 如何用UILabel设置Integer?

这是我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 
+0

使用'[NSString的stringWithFormat:@ “%d”,溶液]'是假设'solution'是一个'int'变量的正确方法。 – rmaddy

+0

请只发布相关的代码。 –

+0

@rmaddy从sqlite数据库获取数据。如何将int转换为string.I被试过。我的问题是如何将整数转换并设置为UILabel。 – user2694118

回答

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

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

双方将合作。

编辑:

根据你的情况,这将是这样的:

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

如果仍然没有工作,肯定问题是别的地方,而不是与转换。检查属性noofcomm有一个有效的值,检查您的标签参考是否可以(在转换前用一个随机值进行测试),以及类似的东西。

+0

您提到someInteger = 20;不是这一个,我从sqlite数据库中获取数据请参阅DBClass.m,我问如何设置与UIlabel进行转换的问题。如何使用整数与UILabel设置? – user2694118

+1

整数的来源无关紧要,转换将是相同的。只需在上面的代码中将'myInteger'更改为sqlite数据库中的整数。 '20'是一个例子 –

+0

PLease看到我的RootViewController.m我已经设置了文本,图像和日期,但如何设置整数一次看上面的代码。 – user2694118

1

你需要建立一个NSString

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

从sqlite数据库中获取数据在这里我问如何设置与UIlabel转换 – user2694118

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

在左上角是你的标签命名为 “yourLabel”, “DIC” 是你的JSON响应字典在所有数据都以关键值形式出现的情况下,“您的整数值”是将值分配给标签“yourLabel”的关键,我们采用了intValue,因为我们无法直接将整数值分配给标签。

或也可以如下尝试:

int anyInteger = 13; 
NSString *yourString = [[NSString alloc] initWithFormat:@"%d", anyInteger]; 
self.yourLabel.text = yourString; 
+0

请使用[编辑]链接解释此代码如何工作,不要只给代码,因为解释更有可能帮助未来的读者。 –