Проблема уничтожить или твитнуть (inReplyTo) с MGTwitterEngine. Не удается передать правильный номер NSNumber методам. - PullRequest
0 голосов
/ 23 января 2010

Надеюсь, я вас не раздражаю, и вам не нужно на это отвечать, но вот немного больше объяснения моей проблемы. Я получил все идентификаторы твитов с NSArray. Затем я установил NSNumber с помощью:

NSNumber =[NSArray objectAtIndex:indexPath.row];

, чтобы получить правильный идентификатор твита в строке TableView. Теперь я просто написал это:

 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 ]

3 голосов
/ 23 января 2010

Получил ответ: MGTwitterEngine хочет длинную без знака, но iPhone 32-битный, поэтому 64-битное число становится меньше, а MGTwitterEngine получает неправильный номер. Вы должны отредактировать MGTwitterEngine. Просто напишите unsigned long long в методах.

0 голосов
/ 23 января 2010

NSNumber - это класс, а не экземпляр. Код может выглядеть примерно так:

NSNumber *myNumber = [NSArray objectAtIndex:indexPath.row];
unsigned long fooo = [NSNumber longValue];
NSLog("%l", fooo); // The right number
[twitterEngine deleteUpdate:fooo];

Возвращаемое значение -objectAtIndex: - это объект, а long - примитивное значение. Поэтому вам нужно получить примитивное длинное значение из объекта NSNumber.

Кстати, нечетное число, которое вы получаете, является адресом памяти для экземпляра NSNumber.

0 голосов
/ 23 января 2010

По-другому, насколько я могу судить, ваш код выглядит примерно так:

NSNumber * aNumber = [anArray objectAtIndex: index.row]; без знака long = aNumber;

Вместо использования длинного без знака вы должны использовать NSUinteger, кстати.

и делать это более напрямую: NSUInteger anInteger = [[anArray objectAtIndex: index.row] longValue]; // или longLongValue];

сделано. Скажи мне, если я тебя неправильно понял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...