Tôi đang cố chuyển đổi đối tượng NSString thành một NSNumber có cùng giá trị số. Khi tôi tạo ra các đối tượng NSString sử dụng tuyên bố này ...Tại sao lớp NSNumber không chính xác chuyển đổi đối tượng NSString của tôi thành một thời gian dài?
NSString *songID = [localNotif.userInfo objectForKey:@"SongID"];
var songID
chứa chuỗi giá trị @"10359537395704663785"
. và khi tôi cố gắng để chuyển nó sang một đối tượng NSNumber sử dụng câu lệnh ...
NSNumber *songIDNumber = [NSNumber numberWithLongLong:[songID longLongValue]];
var songIDNumber
chứa các giá trị sai của 9223372036854775807
Tôi đang làm gì sai? Cũng cần lưu ý rằng đôi khi mã này hoạt động và tạo ra giá trị đúng của NSNumber, nhưng phần lớn thời gian không thành công như được hiển thị ở trên.
Cảm ơn trước sự giúp đỡ của bạn!
CẬP NHẬT: Thiên Chúa Tôi yêu trang web này! Nhờ unbeli và carl, tôi đã có thể sửa chữa nó sử dụng mã được cập nhật để chuyển đổi từ NSString đến NSNumber ...
unsigned long long ullvalue = strtoull([songID UTF8String], NULL, 0);
NSNumber *songIDNumber = [NSNumber numberWithUnsignedLongLong:ullvalue];