0
我有一個與sqlite的問題。我有一個選擇與2 varchars它並將其保存在一個對象。當我試圖獲取數據時,只有一個varchars具有我想要的字符串。另一個是NSBlockVariable或nil。iOS保存sqlite在NSobject中選擇
調試sqlite3,它工作的很好,它返回完美所需。 這兩個變量是:名稱和存儲
product.name = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 3)];
product.store = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 4)];
NSLog(@"name: %@", [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 3)]);
NSLog(@"store: %@", [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 4)]);
我得到:
//name: Sunglasses
//store: RayBan
我有一個對象像這樣創建:
@interface ProductsCart : NSObject
@property (nonatomic, assign) NSInteger idtrans;
@property (nonatomic, assign) NSInteger idproduct;
@property (nonatomic, assign) NSInteger idstore;
@property (nonatomic, assign) NSString *name;
@property (nonatomic, assign) NSString *store;
這是我怎麼把它保存在我的DAO等級:
NSMutableArray *productList = [[NSMutableArray alloc] init];
while(sqlite3_step(sqlStatement) == SQLITE_ROW)
{
ProductsCart *product = [[ProductsCart alloc] init];
product.idtrans = sqlite3_column_int(sqlStatement, 0);
product.idproduct = sqlite3_column_int(sqlStatement, 1);
product.idstore = sqlite3_column_int(sqlStatement, 2);
product.name = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 3)];
product.store = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 4)];
[productList addObject:product];
}
在我車類我有一個表,這是我的身體情況如何每行的信息:
在viewDidLoad中
self.products= [dao getProductList];
在的cellForRowAtIndexPath
ProductsCart * productCart=[self.products objectAtIndex:[indexPath row]];
int idtrans=[[[self.products objectAtIndex:[indexPath row]] valueForKey:@"idtrans"] intValue];
NSString* name=[[self.products objectAtIndex:[indexPath row]] valueForKey:@"name"];
NSString* store=[[self.products objectAtIndex:[indexPath row]] valueForKey:@"store"];
此時:
- name是一個NSMutableString,它包含「太陽眼鏡」
- 商店是一個NSObject,它必須是一個字符串
我在模擬器上檢查了存儲的數據庫,行是完美的,所以問題不在它上面。
如果我更改順序保存(在product.store product.name和名稱存儲)中的數據:
product.name = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 4)];
product.store = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 3)];
這就是我得到:
- 名稱是的NSMutableString和它包含「雷朋」
- 存儲是一個NSObject的,它必須是一個字符串
在商店,S ometimes我得到
store __NSCFString * @"star.count.singular" 0x00007fae62068e40
我該如何解決這個問題?
非常感謝!