Что не так с этим для цикла - пытается заполнить массив с объектом Tweet? - PullRequest
2 голосов
/ 03 апреля 2012

По сути, у меня есть ответ JSON от Twitter API, содержащий временную шкалу.Я пытаюсь заполнить и создать массив с объектами Tweet в цикле, но окно предупреждения сообщает мне, что после цикла массив пуст:

    NSError *error;

    NSArray *tweetJsonObjects = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
    for (int i = 0; i < [tweetJsonObjects count]; i++) {
        Tweet *tweet = [[Tweet alloc] init];
        tweet.userName = [[[tweetJsonObjects objectAtIndex:i] objectForKey:@"user"] objectForKey:@"name"];
        tweet.text = [[tweetJsonObjects objectAtIndex:i] objectForKey:@"text"];
        //[tweet.text gtm_stringByUnescapingFromHTML];
        tweet.userProfileImageUrl = [[[tweetJsonObjects objectAtIndex:i] objectForKey:@"user"] objectForKey:@"profile_image_url"];
        [tweets addObject:tweet];
    }

    NSString *x = [NSString stringWithFormat:@"%d", [tweets count]];
    UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Hello World!"
                                                      message:x
                                                     delegate:nil
                                            cancelButtonTitle:@"OK"
                                            otherButtonTitles:nil];
    [message show];

Объект Tweet очень прост:

@interface Tweet : NSObject
{
    NSString *userName;
    NSString *text;
    NSString *userProfileImageUrl;
    UIImage *userProfileImage;
}

@property (nonatomic, retain) NSString *userName;
@property (nonatomic, retain) NSString *text;
@property (nonatomic, retain) NSString *userProfileImageUrl;
@property (nonatomic, retain) UIImage *userProfileImage;
@end

Ответы [ 3 ]

5 голосов
/ 03 апреля 2012

Я думаю, это потому, что вы называете indexOfObject: вместо addObject: - невинная ошибка автозаполнения.

2 голосов
/ 03 апреля 2012

Конечно, потому что вы не добавляете объекты в какой-либо массив ... Очевидно, вы имели в виду [tweets addObject:tweet] вместо [tweets indexOfObject:tweet]

2 голосов
/ 03 апреля 2012

Попробуйте изменить последнюю строку цикла for на:

[tweets addObject:tweet];

PS Если tweets - ваш массив

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