如何将一个__NSCFNumber放入NSString中?

5

我有一个名为task_idNSNumber变量。 我想把这个NSNumber变量放入一个NSString(post请求)中。以下是我的尝试:

NSString *post = [NSString stringWithFormat:@"&task_id=%@", task_id];

并且:

NSString *post = [NSString stringWithFormat:@"&task_id=%@", [NSString stringWithFormat:@"%@",task_id]];

由于某些原因,该字符串在POST请求中不包括task_id的值。我该如何将NSNumber放入该字符串中?

更新

根据此代码,task_id是一个NSCFNumber:

NSLog(@"%@", [task_id class]);

非常感谢, 彼得

你收到了什么错误信息? - Kevin DiTraglia
你会得到什么关于 post 的内容? - Martin R
我得到了一个空的响应,这是预期的。当我在字符串中放置一个数字(硬编码),我得到了适当的响应。我没有得到任何Objective-C错误。 - Peter Stuart
无论是NSNumber还是NSCFNumber,都可以。查看此链接以了解它们之间的区别:https://dev59.com/mm855IYBdhLWcg3waDiR。 - santhu
@PeterStuart:我并没有要求回应。如果你想寻求实际问题的帮助,那么请展示task_idpost的NSLog输出,以及你发送请求的代码。 - Martin R
好的,抱歉我误读了你的问题,当我在NSLog中调用post时,我得到的是"&task_id=XXX"。也许问题出在其他地方。 - Peter Stuart
3个回答

11
NSNumber *myNumber = @12;
NSString *myString = [myNumber stringValue];
NSString *post = [NSString stringWithFormat:@"&task_id=%@", myString];

这个问题已经在这里得到了解答。


我已经尝试过那个答案。 - Peter Stuart
1
为什么这样做比原始代码更好?顺便说一下,[NSNumber stringValue]无法编译。 - Martin R
在他说“NSNumber”的地方,假定您将放入您的NSNumber对象的变量。 - Gavin
请检查我的修改后的答案。希望这有所帮助。 - zaheer

2

它应该可以工作。但是无论如何,如果任务ID只是一个整数

NSString *post = [NSString stringWithFormat:@"&task_id=%d", task_id.intValue];

1
为什么这样做会比原始代码更有效? - Martin R
我说过,它应该能够工作,理由显而易见。但这是计划B。 - santhu
1
“应该可以工作”是一个有用的注释。我看不出为什么“备选方案B”会更好地工作... - Martin R
@MartinR 能否解释一下 "betterness" 是什么意思?我是个学习者。 - santhu
我的意思是:如果 NSString *post = [NSString stringWithFormat:@"&task_id=%d", task_id.intValue]; 能够正常工作,那么原始代码也能正常工作。没有任何理由去替换你所建议的那个代码。 - Martin R

1

感谢大家的努力。结果发现那不是问题所在,问题出在了 Web 服务器上!

我误解了整件事情,

谢谢大家,

Peter


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接