【问题标题】:Swift RestKit Post not including post dataSwift RestKit Post 不包括帖子数据
【发布时间】:2015-04-14 15:39:31
【问题描述】:

我无法使用以下代码获取发布的数据。我已经尝试过所有关于 SO 的相关帖子,但仍然无法正常工作。

在请求描述符中添加,具有用于映射参数的 NSDictionary,尝试过 inverseMapping 等。

var parms = WearRequestParms()
parms.Height = height
parms.Width = width
parms.Density = density
if let userId = AlpineMetricsHttpClient.GetUserId()
{
     parms.UserId = userId
}

var objectManager : RKObjectManager?
objectManager = AlpineMetricsHttpClient.SetupClient()

// var mapping = RKObjectMapping(forClass:WearRequestParms.self)
var mapping = RKObjectMapping.requestMapping()

let requestMappingObjects =  ["IsCircle","Height","Width","Density","UserId","WearModel","Platform"]

let dict : NSMutableDictionary = ["IsCircle":"IsCircle","Height":"Height","Width":"Width","Density":"Density","UserId":"UserId","WearModel":"WearModel","Platform":"Platform"]

mapping.addAttributeMappingsFromArray(requestMappingObjects)
// mapping.addAttributeMappingsFromDictionary(dict as [NSObject : AnyObject])

// var newRequestMapping =  mapping.inverseMapping()

let requestDescriptor = RKRequestDescriptor(mapping: mapping, objectClass: WearRequestParms.self, rootKeyPath: "", method: RKRequestMethod.POST)

objectManager!.addRequestDescriptor(requestDescriptor)

// response
let responseMapping = RKObjectMapping(forClass:PostStatus.self)

var responseDescriptor = RKResponseDescriptor(
    mapping: responseMapping
    ,method:RKRequestMethod.POST
    ,pathPattern : "/api/User/RegisterWearDevice"
    ,keyPath :""
    ,statusCodes  :  NSIndexSet(index:200))

objectManager!.addResponseDescriptor(responseDescriptor)

RKObjectManager.sharedManager().postObject(parms, path: "/api/User/RegisterWearDevice", parameters: nil,
    success:{ operation, mappingResult in
        NSLog("success")

        defaults.setBool(true, forKey: "WearDimensionsSynced")

    },
    failure:{ operation, error in
        NSLog("Error loading metric list': \(error!.localizedDescription)")
        //return nil
    }
);

【问题讨论】:

    标签: swift post restkit


    【解决方案1】:

    我不应该使用 RKObjectManager.sharedManager().postObject

    这会导致之前的值被覆盖或干扰。

    我换了

    RKObjectManager.sharedManager().postObject
    

    objectManager!.postObject
    

    【讨论】:

    • 以什么方式?你的意思是你有多个经理,所以你应该使用objectManager而不是RKObjectManager.sharedManager
    • @Wain 正确,我用我切换的内容更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多