Nano Hash - криптовалюты, майнинг, программирование

Как сохранить изображение в основном пользовательском классе Parse?

У меня есть следующий метод:

- (void) savePhotoToUser {

    NSData *imageData = UIImageJPEGRepresentation(_imgView.image, 1.0);
    PFFile *imageFile = [PFFile fileWithName:@"img.png" data:imageData];

    [imageFile saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (!error) {


            //THIS IS WHERE I NEED HELP
            //
            PFObject *userPhoto = [PFObject objectWithClassName:@"User"];
            //
            //

            [userPhoto setObject:imageFile forKey:@"profilePicture"];

            [userPhoto saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
                if (!error) {
                    NSLog(@"Saved %@ for user %@", imageFile, userPhoto);

                    //Push ViewController

                }
                else{
                    NSLog(@"Error: %@ %@", error, [error userInfo]);
                }
            }];
        }
        else{
            NSLog(@"Error: %@ %@", error, [error userInfo]);
        }
    }];
}

Я пытаюсь сохранить PFObject в классе основного пользователя в Parse. У меня есть столбец с меткой profilePicture, но когда я запускаю метод, я получаю новый класс с именем User (в дополнение к существующему), и изображение туда попадает. Я показываю изображение моего экземпляра Parse с классом и предполагаемым объектом для хранения изображения.

Любая помощь будет оценена по достоинству! :)

Разобрать образ БД


  • Я разбираю, хотите ли вы сохранить изображение или любой текст или файл, тогда сначала вам нужно сохранить его как файл с типом. После этого вы связываете столбец своего класса с этим указателем файла, который вы сохранили. Итак, создайте файл с этим изображением, сохраните его, а затем сохраните его в поле столбца, который является profilePicture. 10.06.2014

Ответы:


1

Вот что сработало: что нужно было сделать (и @Vidhyanand900 был на правильном пути, но не на 100%), так это сохранить изображение в фоновом режиме, а затем setObject установить изображение для текущего пользователя.

NSData *imageData = UIImageJPEGRepresentation(_imgView.image, 1.0);
PFFile *imageFile = [PFFile fileWithName:@"img.png" data:imageData];
[imageFile saveInBackground];

PFUser *user = [PFUser currentUser];
[user setObject:imageFile forKey:@"profilePicture"];
[user saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (!error) {

//...REST OF CODE...

Ответ был найден здесь: https://parse.com/questions/update-table-user-with-a-profile-image


Вот ответ в Swift:

let imageData: NSData = UIImageJPEGRepresentation(image, 1.0)
let imageFile: PFFile = PFFile(name:"image.jpg", data:imageData)
imageFile.save()

let user = PFUser.currentUser()
user.setObject(imageFile, forKey: "profilePicture")
user.saveInBackgroundWithBlock {
            (success: Bool!, error: NSError!) -> Void in
            if (success != nil) {

                println("saving")
}
}
10.06.2014

2

Вы можете сохранить изображение в Parse, используя приведенный ниже код.

    PFObject *userInfo = [PFObject objectWithClassName:@"User"];

    NSData *imageData = UIImagePNGRepresentation(selectedImage);

    PFFile *imageFile = [PFFile fileWithName:@"profileimage.png" data:imageData];

    [imageFile save];   

    [userInfo setObject:imageFile forKey:@"profilePicture"];

    [userInfo save];   

Надеюсь вам поможет..

10.06.2014
  • Это был отличный (и быстрый) ответ, всякий раз, когда я устанавливал для objectWithClassName значение User, он создавал новый класс. 10.06.2014

  • 3

    Классы User, Role и Installation являются особыми, их настоящие имена _User, _Role и _Installation, но вы также не должны пытаться использовать эти имена.

    При выполнении запросов к этим классам вы должны использовать следующий формат:

    PFQuery *userQuery = [PFUser query];
    

    В качестве альтернативы вы можете работать напрямую с текущим пользователем:

    PFUser *currentUser = [PFUser currentUser];
    

    См. этот раздел документации по iOS/OS X, пользователи, запросы.

    10.06.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..