我创建了一个 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/