将int的变量设置为[NSNumber:Int]的变量

时间:2016-05-26 13:59:11

标签: ios swift2 slrequest

我在使用SLRequest for Twitter中的参数时遇到了麻烦(因为它必须是[NSObject:AnyObject]的一种类型!但是Twitter API要求Int作为参数)。我所做的是将参数保持为[NSObject:AnyObject]并计划声明另一个变量以将其更改为Integer。怎么做到这一点?

var userName : String!
var text : String!
var name : String!
var tweetID : [NSObject : AnyObject]!
var twtID : Int!

tweetID = twtID as [NSObject : AnyObject]

var userLocation : String!
var UserImgURLStr: String?

init(jsonDataDictiony : [String : AnyObject])
{

    self.text = jsonDataDictiony["text"] as! String
    self.twtID = jsonDataDictiony["id"] as! Int!

tweetID = twtID的声明为[NSObject:AnyObject]给出错误

或者是否可以替换整个变量类型并在参数中使用Integer?

编辑2:我决定将类型(在重新检查后,[NSObject:AnyObject]只是预期的参数类型)更改为[NSNumber:Int],任何想法如何连接从Twitter API找到的int值进入变量TweetID?

var userName : String!
var text : String!
var name : String!
var tweetID : [NSNumber : Int]!
var tweetIDInt : Int!

var userLocation : String!
var UserImgURLStr: String?

init(jsonDataDictiony : [String : AnyObject])
{

    self.text = jsonDataDictiony["text"] as! String
    self.tweetIDInt = jsonDataDictiony["id"] as! Int

1 个答案:

答案 0 :(得分:0)

tweetID = twtID as [NSObject : AnyObject]的声明会导致两个错误。

  • 您无法将Int转换为字典([NSObject : AnyObject])。
  • 您无法在班级的顶层执行此行代码。

在方法

中指定相应键的值
tweetID["id"] = twtID 

由于texttwtID似乎始终存在并在init方法中初始化,因此将它们声明为非可选项。