javascript - 使用 iOS 和 Javascript 解析数据库

标签 javascript ios database parse-platform

我创建了一个 iOS 应用程序和一个小型网络应用程序。 Web 应用程序接受输入并在我的解析数据库中创建类对象(“作业”)。然后,iOS 应用程序从数据库中读取这些作业(具有各种功能)。

现在,这就是概念,我已经让两个部分单独工作,但它们不能一起工作。

// Function called to save all the information gathered.
function submitFunction (name, phone, email, title, date, start, hours, address, notes) {

  console.log("worked");
  var Jobs = Parse.Object.extend("Jobs");
  var jobs = new Jobs();


  jobs.save({
  // these need to change to variables
    name: name,
    phoneNumber: Number(phone),
    email: email,
    date: date,
    title:title,
    startTime: start,
    numofHours: Number(hours),
    address: address,
    notes: notes 

  }, {
    success: function(name) {
      // The object was saved successfully.
    },
    error: function(name, error) {
      // The save failed.
      // error is a Parse.Error with an error code and message.
    }
  });
}

这是我的网络应用程序中的 javascript 片段,但是当将它们添加到数据库中时,当我尝试检索数据时,我的 iOS 应用程序崩溃了(反之亦然)。

Xcode 查询如下所示:

PFQuery *updateTableArray = [PFQuery queryWithClassName:@"Jobs"];
    [updateTableArray findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if (!error) {
            // The find succeeded.
            NSLog(@"Successfully retrieved %d objects.", objects.count);
            // Do something with the found objects
            for (PFObject *object in objects) {
                //Init variables from parse
                NSString *titleString = object[@"title"];
                NSString *dateString = object[@"date"];
                NSString *timeString = object[@"startTime"];
                NSString *hoursString = object[@"numofHours"];
                NSString *addressString = object[@"address"];
                NSString *notesString = object[@"notes"];
                NSString *phoneString = object[@"phoneNumber"];
                NSString *objectIdString = object.objectId;

                //add initialized vars into appropriate arrays
                [self.titlesArray addObject:titleString];
                [self.dateArray addObject:dateString];
                [self.timeArray addObject:timeString];
                [self.hoursArray addObject:hoursString];
                [self.addressArray addObject:addressString];
                [self.notesArray addObject:notesString];
                [self.phoneArray addObject:phoneString];
                [self.objectIdArray addObject:objectIdString];
            }
            [self.tableView reloadData];
        } else {
            // Log details of the failure
            NSLog(@"Error: %@ %@", error, [error userInfo]);
        }
    }];

xcode 中有一些有趣的兼容性,因此产生了刺痛。无论如何,当它运行时(在打开 View 时)它会崩溃并出现错误:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFNumber length]:无法识别的选择器发送到实例 0xd629260”

最佳答案

事实证明这是数据类型冲突。将 JS 中上传的所有数据转换为字符串,修复了 iOS 端读取数据的兼容性。

关于javascript - 使用 iOS 和 Javascript 解析数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26707327/

相关文章:

javascript - 仅切换 Reactjs 中单击的菜单

javascript - 是否可以使用正则表达式用具有前导零的相同数字替换字符串中的数字

javascript - Stripe Elements 不会加载我的自定义字体

ios - React Native IOS 状态栏背景

ios - 如何比较 KIF 3.1.1 中 UI 中的文本和从 Web 服务接收的文本?

ios - 类型为 "Date & Time"的 UIDatePicker 只返回日期而不返回时间

mongodb - mongodb索引什么时候更新?

javascript - webpack-cli 无法加载 webpack.config.js 并且找不到 html-webpack-plugin

node.js - 如何使用 websockets 监听 mongodb 中的更新

c# - 基于 PIVOT 查询的 Oracle View 不是空值