我正在hosted custom service
Backendless
我创建了一个自定义jar library
并将其上传到Backendless hosted custom service
但是当我尝试使用Swift中的SDK调用它时,它返回了一个错误。
我的图书馆如下:
SalvarContatosLibrary.java
package com.mbaas.service;
import com.backendless.Backendless;
import com.backendless.servercode.IBackendlessService;
import java.util.ArrayList;
public class SalvarContatoLibrary implements IBackendlessService {
public boolean salvarContatos(ArrayList<Contato> contato) {
boolean retorno = true;
if(contatos == null || contatos() == 0) {
retorno = false;
} else {
for(Contato contato: contatos) {
Backendless.Persistence.save(contato);
}
}
return retorno;
}
}
Contato.java
package com.mbaas.service;
import java.util.Date;
/**
* Created by guilhermedupas on 12/07/17.
*/
public class Contato {
private Usuario usuario;
private int prioridade;
private String objectId;
private Date created;
private Date updated;
private String ownerId;
}
Usuario.java
package com.mbaas.service;
import java.util.Date;
/**
* Created by guilhermedupas on 12/07/17.
*/
public class Usuario {
private String nome;
private String foto;
private Date dataNascimento;
private String numeroTelefone;
private String telefoneE164;
private String objectId;
private Date created;
private Date updated;
private String ownerId;
}
我正在尝试按以下代码调用该方法:
Swift Code
func salvarContato() {
let nomeServico = "SalvarContatoLibrary"
let versaoServico = "1.0.0"
let metodoServico = "salvarContatos"
let contatosNSArray = contatos as! NSArray
backendless?.customService.invoke(nomeServico, serviceVersion: versaoServico, method: metodoServico, args: contatosNSArray as! [Any],
response: { (result: Any?) -> Void in
print(result)
}, error: { (fault: Fault?) -> Void in
print("Erro contatos")
print("Server reported an error to save the User: \(fault)")
})
}
它返回的错误是:
Server reported an error to save the User: Optional(FAULT = '0' [ExceptionClass:"CodeRunnerException" {Msg:"Wrong number of arguments", Cause:"none"}] <ExceptionClass:"CodeRunnerException" {Msg:"Wrong number of arguments", Cause:"none"}> )
更新:
不,contatosNSArray
不为空。
我现在尝试将contatos
投射到NSMutableArray
contatosNSMutableArray = contatos as! NSMutableArray
并且它停止了重新调整我的错误,但它以数字0
的形式返回一个响应并且它没有保存数据。
答案 0 :(得分:0)
这个答案来自Backendless支持:
版本3的Swift代码生成无法正常工作。
我建议采用以下方法:
修改您的java代码,以便为私有字段声明公共字段或获取/设置方法。
为服务创建jar并在4.0应用程序中部署。这样你就可以为它生成Swift代码。
- 醇>
生成swift代码后,请将其与3.x应用一起使用。