首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >属性列表对格式无效: 200 (属性列表不能包含‘CFNull’类型的对象)试图设置非属性列表对象

属性列表对格式无效: 200 (属性列表不能包含‘CFNull’类型的对象)试图设置非属性列表对象
EN

Stack Overflow用户
提问于 2017-01-11 08:28:57
回答 1查看 789关注 0票数 2

在使用Ti.App.Properties.setList()方法时,我遇到了一个奇怪的错误。

在这里你可以看到我有一些价值观。控制台:

代码语言:javascript
复制
[INFO] :   id==2251378
[INFO] :   category==[object Object]
[INFO] :   localteam.id==18650
[INFO] :   visitorteam.id==7636
[INFO] :   j==1
[INFO] :   i==2

现在我将getlist();保存在一个变量中,在第二行中创建一个对象并对其进行初始化。并在其中分配一些值。我的守则是:

代码语言:javascript
复制
var myMatchesFootball = Ti.App.Properties.getList('myMatchesFootball');
myMatchesFootballObject = new Object();

myMatchesFootballObject.matchId = "";
myMatchesFootballObject.data    = "";
myMatchesFootballObject.local   = "";
myMatchesFootballObject.visitor = "";
myMatchesFootballObject.index_j = "";
myMatchesFootballObject.index_i = "";


myMatchesFootballObject.matchId = json2.scores.category[e.source.star_indexi].matches.match.id;
myMatchesFootballObject.data    = json2.scores.category[e.source.star_indexi];
myMatchesFootballObject.local   = json2.scores.category[e.source.star_indexi].matches.match.localteam.id;
myMatchesFootballObject.visitor = json2.scores.category[e.source.star_indexi].matches.match.visitorteam.id;
myMatchesFootballObject.index_j = e.source.star_indexj;
myMatchesFootballObject.index_i = e.source.star_indexi;
myMatchesFootballObject.selectedDay  = "myMatches";

myMatchesFootball.push(myMatchesFootballObject);
Ti.App.Properties.setList('myMatchesFootball', myMatchesFootball);

但是我的应用程序崩溃了,在控制台上显示了这个错误,

代码语言:javascript
复制
The Error is: 
[ERROR] :  Script Error {
[ERROR] :      column = 62;
[ERROR] :      line = 888;
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* [ERROR] :      message = "Attempt to insert non-property list object (\n        {\n        data =         {\n            \"file_group\" = brazil;\n            gid = 1139;\n            id = 1139;\n            matches =             {\n                date = \"Jan 11\";\n                \"formatted_date\" = \"11.01.2017\";\n                match =                 (\n                                        {\n                        \"commentary_available\" = \"\";\n                        date = \"Jan 11\";\n                        events = \"<null>\";\n                        \"fix_id\" = 2042614;\n                        \"formatted_date\" = \"11.01.2017\";\n                        ht =                         {\n                            score = \"\";\n                        };\n                        id = 2251377;\n                        localteam =                         {\n                            goals = \"?\";\n                            id = 7139;\n                            name = \"Cajazeirense de Desportos\";\n                        };\n                        \"static_id\" = 2159519;\n                        status = \"23:30\";\n                        time = \"23:30\";\n                        timer = \"\";\n                        v = 0;\n                        venue = \"\";\n                        visitorteam =                         {\n                            goals = \"?\";\n                            id = 17805;\n                            name = \"Botafogo PB\";\n                        };\n                    },\n                                        {\n                        \"commentary_available\" = \"\";\n                        date = \"Jan 11\";\n                        events = \"<null>\";\n                        \"fix_id\" = 2042611;\n                        \"formatted_date\" = \"11.01.2017\";\n                        ht =                         {\n                            score = \"\";\n                        };\n                        id = 2251378;\n                        localteam =                         {\n                            goals = \"?\";\n                            id = 18650;\n                            name = CSP;\n                        };\n                        \"static_id\" = 2159516;\n                        status = \"23:30\";\n                        time = \"23:30\";\n                        timer = \"\";\n                        v = 0;\n                        venue = \"\";\n                        visitorteam =                         {\n                            goals = \"?\";\n                            id = 7636;\n                            name = \"Treze PB\";\n                        };\n                    },\n                                        {\n                        \"commentary_available\" = \"\";\n                        date = \"Jan 11\";\n                        events = \"<null>\";\n                        \"fix_id\" = 2042610;\n                        \"formatted_date\" = \"11.01.2017\";\n                        ht =                         {\n                            score = \"\";\n                        };\n                        id = 2251379;\n                        localteam =                         {\n                            goals = \"?\";\n                            id = 7366;\n                            name = \"Internacional PB\";\n                        };\n                        \"static_id\" = 2159515;\n                        status = \"23:30\";\n                        time = \"23:30\";\n                        timer = \"\";\n                        v = 0;\n                        venue = \"\";\n                        visitorteam =                         {\n                            goals = \"?\";\n                            id = 20327;\n                            name = Paraiba;\n                        };\n                    },\n                                        {\n                        \"commentary_available\" = \"\";\n                        date = \"Jan 11\";\n                        events = \"<null>\";\n                        \"fix_id\" = 2042612;\n                        \"formatted_date\" = \"11.01.2017\";\n                        ht =                         {\n                            score = \"\";\n                        };\n                        id = 2251380;\n                        localteam =                         {\n                            goals = \"?\";\n                            id = 27182;\n                            name = \"Serrano PB\";\n                        };\n                        \"static_id\" = 2159517;\n                        status = \"23:30\";\n                        time = \"23:30\";\n                        timer = \"\";\n                        v = 0;\n                        venue = \"\";\n                        visitorteam =                         {\n                            goals = \"?\";\n                            id = 7150;\n                            name = \"Auto Esporte\";\n                        };\n                    },\n                                        {\n                        \"commentary_available\" = \"\";\n                        date = \"Jan 11\";\n                        events = \"<null>\";\n                        \"fix_id\" = 2042613;\n                        \"formatted_date\" = \"11.01.2017\";\n                        ht =                         {\n                            score = \"\";\n                        };\n                        id = 2251381;\n                        localteam =                         {\n                            goals = \"?\";\n                            id = 7619;\n                            name = \"Sousa EC\";\n                        };\n                        \"static_id\" = 2159518;\n                        status = \"23:30\";\n                        time = \"23:30\";\n                        timer = \"\";\n                        v = 0;\n                        venue = \"\";\n                        visitorteam =                         {\n                            goals = \"?\";\n                            id = 7195;\n                            name = Campinense;\n                        };\n                    }\n                );\n            };\n            name = \"Brazil: Campeonato Paraibano\";\n        };\n        date = \"11.01.2017\";\n        \"index_i\" = 2;\n        \"index_j\" = 1;\n        local = 18650;\n        matchId = 2251378;\n        name = \"Brazil: Campeonato Paraibano\";\n        selectedDay = myMatches;\n        time = \"23:30\";\n        visitor = 7636;\n    }\n) for key myMatchesFootball";
*/
[ERROR] :      sourceURL = "file:///Users/Apple/Library/Developer/CoreSimulator/Devices/1C82A7E8-F480-4FE1-A0F2-C6F713774B0D/data/Containers/Bundle/Application/500CCBD6-B81D-4D6A-AB8E-0C8E24E379D8/Tipping%20Hub.app/alloy/controllers/football_window_detail.js";
[ERROR] :      stack = "[native code]\nfile:///Users/Apple/Library/Developer/CoreSimulator/Devices/1C82A7E8-F480-4FE1-A0F2-C6F713774B0D/data/Containers/Bundle/Application/500CCBD6-B81D-4D6A-AB8E-0C8E24E379D8/Tipping%20Hub.app/alloy/controllers/football_window_detail.js:888:62";
[ERROR] :  }

,但是当我评论这一行的时候,

代码语言:javascript
复制
myMatchesFootballObject.data    = json2.scores.category[e.source.star_indexi];

我也试过了,但不管用,

代码语言:javascript
复制
myMatchesFootballObject.data    = new Object;
EN

回答 1

Stack Overflow用户

发布于 2017-01-24 01:29:14

出现此错误的原因是您试图保存嵌套对象,而setList/getList API不支持它,因此您得到了错误Attempt to insert non-property list object

解决这一问题的方法是压缩对象并存储它,但是,我不建议将其作为最佳实践。您可能应该使用一个使用合金模型的数据库,而不是将其保存在Ti.App.Properties

您可以在代码中修改一些东西以改进代码:

默认变量为空数组。

代码语言:javascript
复制
var myMatchesFootball = Ti.App.Properties.getList('myMatchesFootball', []);

而不是调用new Object,只需声明对象并将值赋值给它。(别忘了开头的var )

代码语言:javascript
复制
var myMatchesFootballObject = {
    matchId: json2.scores.category[e.source.star_indexi].matches.match.id, 
    data: JSON.stringify(json2.scores.category[e.source.star_indexi]),
    // Add other values
};

其余的都没问题:

代码语言:javascript
复制
myMatchesFootball.push(myMatchesFootballObject);
Ti.App.Properties.setList('myMatchesFootball', myMatchesFootball);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41585963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档