2015-11-05 47 views
0

我的iOS應用程序正在通過BOXContentSDK訪問BOX API。突然間,我收到意想不到的類型(int)的「版本」和「typeversion」,同時創造BOXMetadata這是造成因爲以下斷言在NSJSONSerialization + BOXAdditions.m的崩潰創建BoxMetadata時出現意外值

+ (id)box_ensureObjectForKey:(NSString *)key inDictionary:(NSDictionary *)dictionary hasExpectedType:(Class)cls nullAllowed:(BOOL)nullAllowed 
{ 
    id object = [dictionary objectForKey:key]; 
    id extractedObject = object; 
    if ([object isEqual:[NSNull null]]) 
    { 
     if (nullAllowed) 
     { 
      extractedObject = [NSNull null]; 
     } 
     else 
     { 
      BOXAssertFail(@"Unexpected JSON null when extracting key %@ from dictionary %@", key, dictionary); 
      extractedObject = nil; 
     } 
    } 
    else if (object == nil) 
    { 
     extractedObject = nil; 
    } 
    else if (![object isKindOfClass:cls]) 
    { 
     BOXAssertFail(@"Unexpected type when extracting key %@ from dictionary %@\nExpected type %@ but instead got %@", key, dictionary, NSStringFromClass(cls), NSStringFromClass([object class])); 
     extractedObject = nil; 
    } 
    return extractedObject; 
} 

這裏是我得到的例外從上面的斷言;

Expected type NSString but instead got __NSCFNumber' 

樣本響應JSON在下面;

{"documenttype":"Inspections","categories":"Inspections","reportdocumenttype":"","documentTag":"SR000070022803","csa.internal.only":"false","$type":"properties","$parent":"file_42748776033","$id":"314f1a71-7ecf-4e6f-a765-8a6eaefed6d3","$version":0,"$typeVersion":0,"$template":"properties","$scope":"global"} 

謝謝!

回答

1

感謝您伸出援手,Alp。我們的元數據SDK代碼與值不再需要爲字符串(在元數據中可以具有整數和浮點值)的事實不同步。這是您將在https://github.com/box/box-ios-sdk/pull/134中看到的主要更改,其中包含此問題的修復程序。

如果您遇到更多問題,請讓我們知道。

祝你好運, Tom

+0

已解決,謝謝! –