简体   繁体   中英

NSNumber gives wrong int value

I have a program that gets cookies. One param of this cookie is an NSNumber. So I save it to database as

sqlite3_bind_int(addStmt, 2, HEREisNSNUMBER);

Saving this value as:

cookieObj.created = [paramsDictionary valueForKey:@"Created"];

then I create and object of class, and get this parameter into NSNumber; after that, I have a wrong value. For example: In cookie I have a 329822675 after saving this changes to 79931776 . How can I correctly save that number?

请试试

sqlite3_bind_int(addStmt, 2, [HEREisNSNUMBER intValue]);

You are trying to get the int-value of an NSNumber. That's where it goes wrong.

Use this instead: sqlite3_bind_int (addStmt, 2, [HEREisNSNUMBER intValue]); `

NSNumber is a reference type. You should not assign it as a int value directly. You should get the intValue of NSNumber and bind it to sqlite3 statement.

sqlite3_bind_int(addStmt, 2, [HEREisNSNUMBER intValue]);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM