2

这是我的代码

 BackendlessDataQuery *query = [BackendlessDataQuery query];
query.whereClause = [NSString stringWithFormat:@"UniversityName LIKE \'%%%@%%\' ", partialName];
[[backendless.persistenceService of:[University class]] find:query response:^(BackendlessCollection *coll) {

    });
} error:nil];

运行第三行时出现错误

* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArray0 objectAtIndex:]: index 3 beyond bounds for empty NSArray' *** First throw call stack: (0x181245900 0x1808b3f80 0x1811c1478 0x10034d250 0x100318f24 0x1000ea9b0 0x101859bf0 0x101859bb0 0x10185f658 0x1811fcbb0 0x1811faa18 0x181129680 0x182638088 0x185fa0d90 0x10017d650 0x180cca8b8) libc++abi.dylib:以 NSException 类型的未捕获异常终止

是什么原因?

4

2 回答 2

1

原因是我没有初始化 Backendless..

  [backendless initApp:APP_ID secret:SECRET_KEY version:VERSION_NUM];

这是对复制过去的惩罚……谢谢大家!

于 2016-03-05T16:50:59.703 回答
0

例外是因为在of:find:responsepersistenceService 的方法内部,代码试图获取空数组的索引 3。给定您的代码的最可能原因是该代码存在带有意外参数的错误。

编辑:根据您的评论,您可能在配置 backendless 之前运行此代码。 application: didFinishLaunchingWithOptions:可能为时过早。

原始答案:

  1. 删除query.whereClause = [NSString stringWithFormat:@"UniversityName LIKE \'%%%@%%\' ", partialName];线。那它行得通吗?如果是这样,那么您的 where 子句可能不是预期的(UniversityName 是正确的字段名称吗?后端是否支持 Like?如果是,那是它的正确语法吗?)

  2. 如果没有 whereClause 它仍然无法工作 - backendless 是否知道您的University课程?

如果这没有帮助,最好向 backendless 寻求帮助。

于 2016-03-05T15:30:36.427 回答