使用MGTwitterEngine销毁或推文(inReplyTo)的问题 - 无法将正确的NSNumber传递给方法

时间:2010-01-22 21:07:46

标签: iphone objective-c xcode

我希望我不会惹恼你,你不必回答这个问题,但是 这是对我的问题的一点解释。我用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

谢谢!

3 个答案:

答案 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];

完成。 告诉我,如果我不理解你。