2014-10-13 3 views
0

RubyMotion을 사용하고 객체를 json으로 직렬화하려고합니다. 오류 메시지가 나타나지 않지만 내 응용 프로그램이 중단됩니다.RubyMotion에서 NSJSONSerialization 사용

class Foo 
    attr_accessor :name 
    end 

    e = Pointer.new(:object) 

    testItem = Foo.new    
    testItem.name = "test"   

    testJson = NSJSONSerialization.dataWithJSONObject(testItem, options:0, error: e) 

누구나이 클래스를 올바르게 사용하고 있는지 알 수 있습니까? (또는 대안을 알고 있습니다)

+0

을 정의를? –

+0

감사합니다. 질문에서 한 줄을 놓쳤습니다. 업데이트되었습니다. – MikeW

답변

1

귀하의 전화와 관련해서는 아무런 문제가 없습니다. 문제는 데이터에 있습니다. testItem의 최상위 개체는 NSArray 또는 NSDictionary이어야합니다.

Array < NSMutableArray < NSArrayHash < NSMutableDictionary < NSDictionary부터 RubyMotion 배열 및 해시를 사용할 수 있습니다.

는 전화로 이러한 샘플 testItems보십시오 : NSJSONSerialization.h에서

testItem = ["test"] 
testItem = {"names" => ["Fred", "Joe", "Mike"], "ages" => [17, 63, 28]} 

:`e`는

/* A class for converting JSON to Foundation objects and converting Foundation objects to JSON. 

    An object that may be converted to JSON must have the following properties: 
    - Top level object is an NSArray or NSDictionary 
    - All objects are NSString, NSNumber, NSArray, NSDictionary, or NSNull 
    - All dictionary keys are NSStrings 
    - NSNumbers are not NaN or infinity 
*/ 
+0

건배, 그 문제를 해결해 주셔서 감사합니다. – MikeW

+0

대단합니다. 나는 그 하나에 대답하기 위해 약간의 조사를해야했다. 네가 너무 기분이 좋으면 나는 투표를 높이 평가할 것이다. – vacawama