Подтвердить что ты не робот

Объект FBProfilePictureView не будет показывать изображение

im делает учебник для разработчиков scrumptios facebook для 3.1 SDK для iOS. мне удалось отобразить мое имя профиля из facebook, однако FBProfilePictureView не отобразит изображение

heres код для iboutlet

@property (strong, nonatomic) IBOutlet FBProfilePictureView *useProfileImage;

вот что я использовал для отображения pic

self.useProfileImage.profileID = user.id;

Я подтвердил, что он изменил переменную profileid изображения, отобразив ее в метке.

когда я первым запускал проект, у меня была эта ошибка

"2012-05-18 04: 04: 11.620 Scrumptious [6548: f803] Неизвестный класс FBProfilePictureView в файле интерфейса."

и решили это так, как предполагалось в учебнике FB, добавив [FBProfilePictureView class]; на "applicationdidfinishlaunching: withoptions" в делете приложения.

любая идея, почему изображение не показывалось?

ссылка на учебник

4b9b3361

Ответ 1

Добавление [FBProfilePictureView class]; в качестве первой строки в методе делегирования приложения didFinishLaunching кажется для меня чем-то взломанным.

Проверьте HelloFacebookSample внутри SDK. Вот 4-строчный комментарий:

// If you have not added the -ObjC linker flag, you may need to uncomment the following line because
// Nib files require the type to have been loaded before they can do the wireup successfully.
// http://stackoverflow.com/questions/1725881/unknown-class-myclass-in-interface-builder-file-error-at-runtime
// [FBProfilePictureView class];

Я попытался добавить флаг -ObjC, и он работал нормально.

Ответ 2

Чтобы решить эту проблему, добавьте это как первую строку приложения приложения делегирования: didFinishLaunchingWithOptions: method:

[класс FBProfilePictureView];

Ответ 3

Как указано на веб-страницах facebook, вам нужно поместить класс [FBProfilePictureView]; как первая строка в методе делегирования приложения didFinishLaunching. (Обратите внимание, что их пример кода не имеет этого, но все еще работает, в моем случае он не будет работать без него.

Я создал объект UIView, который его оценил, а затем выбрал класс из UIView в FBProfilePictureView. Это отключит любое соединение между вашей программой и IB, поэтому вам нужно снова подключиться, ошибка, в которой вы не можете видеть изображение, связана с тем, что объект не подключен к элементу IBOutlet. Я не уверен, что вырезать и вставить будет работать, может быть, это произойдет, но я создал объект из UIView и просто изменил класс вручную через IB.

Без [класса FBProfilePictureView]; это даст вам сообщение об ошибке.

Если все сделано правильно, если вы просматриваете XIB - в окне объекта/списке вы увидите "Просмотр профиля изображения" вместе с Button и Label вместо FBProfilePictureView. Профиль pic из facebook должен показать.

Ответ 4

У меня та же проблема. Мое решение - снять флажок "Использовать автозапуск" в "Файловом инспекторе" файла xib. Чтобы открыть "File Inspector", нажмите cmd + option + 1 после открытия xib файла.

Изменить 1. Просто найдите другое решение.

Попробуйте установить ограничение ширины и ограничение высоты на изображение профиля. Я нахожу этот учебник полезен.

Ответ 5

У меня была такая же проблема, xcode4.5.1 ios6. чтобы исправить это: в блоке Un uncheck используйте autolayout для FBprofilepictureview, также снимите флажок "autoresize subview" в представлении

Ответ 6

Они (форум разработчиков fb) сказали, что вставьте, что в вашем делете делегат didLunch метод вроде этого

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];



        [FBProfilePictureView class];



        // Create a LoginUIViewController instance where the login button will be
        LoginUIViewController *loginUIViewController = [[LoginUIViewController alloc] init];

        // Set loginUIViewController as root view controller
        [[self window] setRootViewController:loginUIViewController];

        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        return YES;
    }

просто замените

    [FBProfilePictureView class]; 

with these commented lines it will work 

    // Override point for customization after application launch.

    // Load the FBProfilePictureView
    // You can find more information about why you need to add this line of code in our troubleshooting guide
    // https://developers.facebook.com/docs/ios/troubleshooting#objc
    [FBProfilePictureView class];

он будет работать магически:)

Ответ 7

Классы, которые используют категории для расширения существующих классов, не загружаются автоматически. Классы, которые используются из конструктора интерфейса Xcode, не загружаются автоматически, например, когда вы добавляете FBLoginView в свой интерфейс, рисуя представление в вашем .xib файле, а затем классифицируя его как FBLoginView из интерфейса построителя интерфейса.

class помогает создать указатель на FBProfilePictureView.