我正在为客户端构建一个应用程序,该应用程序具有多个年龄范围,用户可以随意选择。例如,我有一个标有18-24岁年龄范围的按钮.我的问题是,是否允许将数组中的多个整数传递给window.plugins.flurry.setAge();?
我有以下代码:
var setAge = function(low,high) {
var ageLow = low;
var ageHigh = high;
var age = [];
while(ageLow <= ageHigh){
age.push(ageLow++)
}
window.plugins.flurry.setAge(age);
};
$('#set-age-one').on('click', function() {
setAge(18,24);
});当在Xcode中查看are的详细模式时,我会得到确认,18-24的值确实是正确设置的。但是,它的后续是AppName[31368:60b] -[__NSArrayM integerValue]: unrecognized selector sent to instance 0x10ae1bd10的错误代码
这不会以任何方式终止或破坏该应用程序,但我想知道这是否会适当地输出到用户仪表板上的Flurry的受众>年龄部分。我可以等6-8个小时才能看到仪表板的更新和发现,但我宁愿早点知道。
编辑:,这是我正在使用的插件的链接
另外,以下是Xcode的完整摘录:
2014-08-18 13:42:49.500 AppName[31904:60b] Setting Flurry Age to (
18,
19,
20,
21,
22,
23,
24
)
2014-08-18 13:42:49.500 AppName[31904:60b] -[__NSArrayM integerValue]: unrecognized selector sent to instance 0x10aa00760解决方案:如果有人在自己的项目中遇到此问题,下面的日志记录了一个年龄范围内的单个整数:
var setAge = function(low,high) {
var ageLow = low;
var ageHigh = high;
while(ageLow <= ageHigh) {
window.plugins.flurry.setAge(ageLow++);
}
};发布于 2014-08-18 21:22:21
查看方法iOS代码setAge,您只能向该方法传递一个值。尽管JS端接受它作为一个数组[age],但这只供Cordova处理程序轻松地传递数据。
iOS方法引用:
int Age = [[command.arguments objectAtIndex:0]integerValue];它只表示它正在将对象的第一个索引转换为真int。如果将数组作为对象的第一个索引传递,代码将失败,因为它不能将数组转换为int。
我建议将18-24更改为1824,这样就可以将年龄范围捕获为int,然后传递该字符串而不是int字符串数组。
此外,如果您需要捕获所有的值,您可以递归地为每个值调用setAge。
https://stackoverflow.com/questions/25371868
复制相似问题