iPhone: нераспознанный селектор отправлен на исключение экземпляра при публикации потока на Facebook - PullRequest
0 голосов
/ 25 января 2012

Я написал следующий код для входа в учетную запись Facebook с последующим размещением комментария на стене пользователя в Facebook. Он работает нормально и публикует все, что упомянуто ниже, на стене Facebook, но выбрасывает после исключения и завершения заявки ненормально. Я много почесал голову, но не смог найти ничего плохого. Может ли кто-нибудь сказать мне, что не так в моем коде? К вашему сведению, я объединил этот код из link1 и link2 Спасибо!

Исключение:

-[NSConcreteMutableData objectForKey:]: unrecognized selector sent to instance 0x34a560
 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMutableData objectForKey:]: unrecognized selector sent to instance 0x34a560'

Войти в Facebook код:

- (void)login {
    NSLog(@"Logging into Facebook...");
    UniversalAppAppDelegate *delegate = (UniversalAppAppDelegate *) [[UIApplication sharedApplication] delegate];
    NSArray* requiredPermissions =  [NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"offline_access",nil];

    if (![[delegate facebook] isSessionValid]) {
        [delegate facebook].sessionDelegate = self;
        [[delegate facebook] authorize:requiredPermissions];
    }
}    

Размещение на стене:

- (void)postCommentToFacebookWall:(NSString*)comment
{
    UniversalAppAppDelegate *delegate = (UniversalAppAppDelegate *) [[UIApplication sharedApplication] delegate]; 

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               kAppId, @"api_key",
                               @"This is test message from my iPhone App",@"message",
                               nil];

    [[delegate facebook]  requestWithMethodName:@"stream.publish"
                                  andParams:params
                              andHttpMethod:@"POST"
                                andDelegate:self];
}

Ответы [ 2 ]

1 голос
/ 28 мая 2012

У меня была эта проблема, пока я не понял, что искал результат в:

  • (void) запрос: (FBRequest *) запрос didLoad: (id) результат

Этот метод вызывается при публикации и авторизации / авторизации. В рамках моей авторизации я искал объекты / ключи, но при публикации на стене результат возвращается как NSMutableData, а не NSMUtableDict. Просто убедитесь, что вы не ищете здесь ключи ...

0 голосов
/ 26 января 2012

Я не нашел никаких проблем с этим кодом.Но похоже, что некоторый объект NSMutableData пытается использоваться вместо NSDictionary.то есть NSData не имеет метода "objectForKey:".Может быть, это происходит в другом месте приложения.

Реализованы ли методы обратного вызова?Вы устанавливаете себя как делегат в "requestWithMethodName:".

...