我希望我不会惹恼你,你不必回答这个问题,但是 这是对我的问题的一点解释。我用NSArray获得了所有推文的ID。然后我设置一个NSNumber:
NSNumber =[NSArray objectAtIndex:indexPath.row];
在TableView行中获取正确的推文ID。现在我写了这个:
unsigned long fooo = NSNumber;
NSLog("%@", fooo) // The right number
[twitterEngine deleteUpdate:fooo];
但是finalURL还有另一个号码。所以例如fooo是:8043688359
,finalUrl是这样的:
finalURL = https://twitter.com/statuses/destroy/62024352.xml
我也得到HTTP error 403
所有其他方法,如sendUpdate,getTimeline等正在运行。 只是deleteUpdate和sendUpdate:inReplyTo都没有 工作。我认为它有一些错误的数字要做。 抱歉我的英语不好,不好我是德国的一名年轻学生 我只是学习Objective-C(或一般编程) 三个星期。
原始的方法看起来像这样:
- (NSString *)sendUpdate:(NSString *)status inReplyTo:(unsigned long)updateID; // statuses/update
- (NSString *)deleteUpdate:(unsigned long)updateID; // statuses/destroy
谢谢!
答案 0 :(得分:3)
得到了答案:MGTwitterEngine想要一个无符号长,但iPhone是32位,因此64位数变得更小而MGTwitterEngine得错了。
您必须编辑MGTwitterEngine。只需在方法中编写unsigned long long
。
答案 1 :(得分:-1)
NSNumber
是一个不是实例的类。代码可能如下所示:
NSNumber *myNumber = [NSArray objectAtIndex:indexPath.row];
unsigned long fooo = [NSNumber longValue];
NSLog("%l", fooo); // The right number
[twitterEngine deleteUpdate:fooo];
-objectAtIndex:
的返回是一个对象,long是一个原始值。因此,您需要从NSNumber
对象中获取原始long值。
顺便说一句,你要回的奇数是NSNumber
实例的内存地址。
答案 2 :(得分:-2)
不同的说法,就我可以告诉您的代码而言:
NSNumber * aNumber = [anArray objectAtIndex:index.row]; unsigned long = aNumber;
您应该使用NSUinteger顺便提一下,而不是使用无符号长。
直接做得更好: NSUInteger anInteger = [[anArray objectAtIndex:index.row] longValue]; //或longLongValue];
完成。 告诉我,如果我不理解你。