使用Cocoa或basic c,我如何将double转换为字符串表示形式,然后将其转换回完全相同的double.可读性并不重要,只有准确性.例如,这将工作:
双a,b;
a =某个值;
b = [[[NSNumber numberWithDouble:a] stringValue] doubleValue];
我有一个NSNumber通过第三方API传递,当我在索引上调用intValue时,我得到一个EXC_BAD_ACCESS错误:
-(CPFill *) barFillForBarPlot:(CPBarPlot *)barPlot recordIndex:(NSNumber *)index;
{
NSLog(@"bar index %i", index);
int value = [index intValue];
}
Run Code Online (Sandbox Code Playgroud)
我在调试器中得到的输出是:
条形指数0
条形指数1
程序接收信号:"EXC_BAD_ACCESS".
到底他妈发生了什么?
我注意到第一次调用该方法时,index是nil,但下次显然不是......
我怎么调试这个?!?!它是如此微不足道的事情,但我似乎无法解决它!
我是否通过以下方式创建多个内存泄漏:
NSMutableArray *array=[[NSMutableArray alloc] init];
[array addObject:[[NSNumber alloc] initWithBool:boolVariable1]];
[array addObject:[[NSNumber alloc] initWithBool:boolVariable2]];
[array addObject:[[NSNumber alloc] initWithInt:intVariable]];
[array addObject:[[NSNumber alloc] initWithFloat:floatVariable]];
[array writeToFile:[self dataFilePath] atomically:YES];
[array release];
Run Code Online (Sandbox Code Playgroud)
使用起来更好:
[array addObject:[NSNumber numberWithInt:intVariable]];
Run Code Online (Sandbox Code Playgroud) [measureValue stringValue] 给了我这个例外:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [NSCFString stringValue]:无法识别的选择器发送到实例0x4dde570'
[measureValue description] 工作得很好
但我想我应该stringValue在代码中使用,对吧?
这是代码:
NSNumber *measureValue = [NSString stringWithFormat:@"%i", [cellContent integerValue]];
//if imperial (inches)
if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"Measure"] isEqualToString:@"Imperial"] ) {
//if height
if ([currentQuestion isEqualToString:@"Height"]) {
measureValue = [NSNumber numberWithDouble:(2.54 * [measureValue doubleValue])];
//elseif weight
} else {
measureValue = [NSNumber numberWithDouble:(0.45359237 * [measureValue doubleValue])];
}
//NSLog(@"%@", [measureValue stringValue]);
cellContent = [measureValue description];
Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,并想要舍入值,即如果输出是4.8我想显示4.8而如果输出是4.0,我想显示4
此外,如果我可以精确舍入值,那将是很好的:如果值是4.34然后舍入到4.3而如果它是4.37然后将其舍入到4.4
很抱歉没有发布任何代码.这个问题涉及在xcode ios中工作时浮点数的除法和乘法.
我有变量,我需要除以2.055926336e + 09.但遗憾的是编译器没有划分它?
我如何在代码中使用它
float variable1=((variable2)/(2.055926336e+09));
Run Code Online (Sandbox Code Playgroud)
这对于用较小的值进行除法是正确的(例如: - (1 /(2.055926336e + 09))这是什么原因?任何有效的方法来完成这项工作?
提前致谢!
我试图用整数填充我的数组.但是,对我来说有些奇怪的事情并不像我想的那么容易.以下是对所发生情况的描述.
代码的最后一行给了我错误."不允许将int隐式转换为NSArray"
//.h file
{
NSArray storeDisk[15];
}
property int virdCount;
property (nonatomic, strong)NSArray *storeDisk;
//.m file
virdCount+=virdCount;
storeDisk[0]=virdCount;
Run Code Online (Sandbox Code Playgroud) 我有一个NSMutableSet包含NSNumbers,我需要得到最高的一个.我该怎么办?
我有两个NSNumber,我想分开,但在代码的最后一行我得到错误:"无法使用类型'的参数列表调用'/'(@ Ivalue NSNumber,@ Ivalue NSNumber)'"
var firstnumber: NSNumber = object["numberone"] as NSNumber
var secondnumber: NSNumber = object["numbertwo"] as NSNumber
var calculated: NSNumber = firstnumber / secondnumber
Run Code Online (Sandbox Code Playgroud)
谁能帮我这个??
我正在使用Objective-C,我需要将NSArray中的int添加到NSMutableData(我正在准备通过连接发送数据).如果我用NSNumber包装int,然后将它们添加到NSMutableData,我怎么能找出NSNumber int中有多少字节?是否有可能使用sizeof(),因为根据Apple文档,"NSNumber是NSValue的子类,它提供任何C标量(数字)类型的值."?
例:
NSNumber *numero = [[NSNumber alloc] initWithInt:5];
NSMutableData *data = [[NSMutableData alloc] initWithCapacity:0];
[data appendBytes:numero length:sizeof(numero)];
Run Code Online (Sandbox Code Playgroud) 我已经为对象的属性NSDictionary分配了'price'键的NSNumber值,但是当我记录数字值时,它是一个奇怪的负数!
item.price = [food valueForKey:@"price"];
Run Code Online (Sandbox Code Playgroud)
价格属性为 NSNumber
[[food valueForKey:@"price"] class]
Run Code Online (Sandbox Code Playgroud)
将打印__NSCFNumber正确的。
[[food valueForKey:@"price"] intValue]
Run Code Online (Sandbox Code Playgroud)
返回0x000000000000c350那是50000正确的
但是当我登录item.price或者[item.price integerValue]是-15536这是完全错误的!
任何的想法?
食物json样本:
{“ title”:“ Pizza”,“ price”:50000}
我有一个解析HTML的方法.在那里有一个if/else语句:
if ((NSNumber1 == NSNumber2)) {
NSLog(@"dafuq1?");
} else {
NSLog(@"dafuq2?");
}
Run Code Online (Sandbox Code Playgroud)
日志有时像这样:
...:dafuq1?
...:dafuq2?
所以两个部分都被调用了.但有时候只有其中一个被召唤!为什么?
顺便说一句.iOS 7.0.4,Xcode 5.0.1
并且
(NSNumber1 == NSNumber2)是真实的
如何?
.H
@property (nonatomic, strong) NSNumber *seasonRoundN;
@property (nonatomic, strong) NSString *seasonRound;
Run Code Online (Sandbox Code Playgroud)
.M
_weMeetAgain = [NSNumber numberWithInt:13];
_seasonRound = [NSString stringWithFormat:_weMeetAgain]; // incompatible :S
Run Code Online (Sandbox Code Playgroud)
应该更好地看一下参考文献:(答案如下)
_weMeetAgain = [NSNumber numberWithInt:17];
_seasonRound = [NSString stringWithFormat:@"%@", _weMeetAgain];
Run Code Online (Sandbox Code Playgroud)
求助:P,谢谢.