2016-04-08 49 views
0

我正在使用RestKitRealm開發應用程序。 解析JSON並將對象保存到領域數據庫是沒有問題的。用restKit解析xml

我現在的問題是解析XML並將其保存到數據庫。 我試過RKXMLReaderSerializationXMLReader,但是XMLReader太舊了,因爲它仍然在使用ARC。

沒有這兩個框架我#m的收到此錯誤的:

NSLocalizedDescription=Expected content type {(
    "application/x-www-form-urlencoded", 
    "application/json" 
)}, got application/rss+xml} 

如何新增rss+xml

編輯: 我想我必須添加rss+xml作爲RestKit的MIME類型,但是如何?

下面的代碼是我的電話加載我的NewsFeed,我從上面收到錯誤消息。

static func loadNewsFromServer() { 
     RKObjectManager.sharedManager().getObjectsAtPath(serverURL, 
      parameters: nil, 

      success: { (operation: RKObjectRequestOperation!, result: RKMappingResult!) -> Void in 

       //handle sucess 
      }, 

      failure: { (operation: RKObjectRequestOperation!, error: NSError!) -> Void in 
       print(error) 
      } 
     ) 
    } 

ResponseDescriptor:

let newsResponseDescriptor = RKResponseDescriptor(mapping: News.restKitObjectMapping(), method: RKRequestMethod.GET, pathPattern: serveURL, keyPath: nil, statusCodes: RKStatusCodeIndexSetForClass(RKStatusCodeClass.Successful)) 

是否有任何的可能性來解析XML與restKit?

非常感謝!

+0

默認的'NSXMLParser'呢? – Wain

+0

解析前我會得到錯誤。我再次編輯這個問題 – kimbl

回答

0

你需要做的:(OBJ中-C和迅速的提供,雖然我還沒有檢查的確切語法和類型在iPad ...)

[RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:@"rss+xml"]; 

RKMIMETypeSerialization.registerClass(RKXMLReaderSerialization.self, forMIMEType: "rss+xml") 

和:

[myObjectManager setAcceptHeaderWithMIMEType:@"rss+xml"]; 

myObjectManager.setAcceptHeaderWithMIMEType("rss+xml") 
+0

我試過這個解決方案allready,但是如果我導入'import RKXMLReaderSerialization',我會從xcode得到以下錯誤:'不能構建Objective-C模塊RKXMLReaderSerialization',我認爲這是因爲RKXMLReaderSerialization鏈接到XML閱讀器。但是XML-Reader是5年前最後更新的版本,並且仍在使用ARC ... – kimbl

+0

因此,您需要查找/創建可用於「RKMIMETypeSerialization」的不同XML序列化程序。 RestKit + XML + swift不會一直使用到目前爲止我認爲... – Wain

+0

其實我得到JSON的響應:)現在的問題是與RequestParameter api的responseDescriptor。你能檢查我的新問題嗎? http://stackoverflow.com/questions/36721011/restkit-get-request-with-queryparameter-no-matching-responsedescriptor – kimbl