如何将 NSArray 转换为特定的字符串? [英] how can I convert NSArray into specific String?
问题描述
我正在使用 facebook-api
来获取用户的朋友.代码如下:
I'm using facebook-api
to fetch user's friends. The code is as follows:
let params = ["fields": "id"]
let request = FBSDKGraphRequest(graphPath: "me/friends", parameters: params)
request.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in
if error != nil {
let errorMessage = error.localizedDescription
print(errorMessage)
/* Handle error */
}
else if result.isKindOfClass(NSDictionary){
/* handle response */
let defaults = NSUserDefaults.standardUserDefaults()
let resultdict = result as! NSDictionary
let data : NSArray = resultdict.objectForKey("data") as! NSArray
for i in 0..<data.count {
let valueDict : NSDictionary = data[i] as! NSDictionary
let id = valueDict.objectForKey("id") as! String
print("the id value is \(id)")
}
let friends = resultdict.objectForKey("data") as! NSArray
print("Found \(friends.count) friends")
print(friends)
defaults.setObject(friends, forKey: "fb_friends")
defaults.synchronize()
}
}
resultDict
包含:
{
data = (
{
id = 1662200084096651;
}
);
paging = {
cursors = {
after = QVFIUmFsa0JGazI4amNEcFczT0NRQzdiNshusdsDSHFDHFDDSm02UzNudV9ZATS1ESk5iUEQ5T2syNGDSw4yegdxbdf4WGZA3;
before = QVFIUmFsa0JGazI4amNEcFczT0NRQzdiNURGQTgdsgdsHFDSHTRTNU9DSm02UzNudV9ZATS1ESk5iUEQ5T2syNkRjQW8xc1drGgdsGREHRTcXE4WGZA3;
};
};
summary = {
"total_count" = 762;
};
}
上面的print
打印(对于1个fb朋友):
The print
above prints (for 1 fb friend):
({id = 1020XXXXXX305XXX;})
( { id = 1020XXXXXX305XXX; } )
我想把它传递给我的服务器,所以我想这样做:
I want to pass this to my server, so I thought about doing:
var emptyParams = ["":""]
emptyParams["friends"] = (defaults.objectForKey("fb_friends") as! NSArray).componentsJoinedByString(",")
然后代替参数:
friends: 1020XXXXXX305XXX
我有:
"friends": {
id = 10206503694305180;
}
我想跳过 id
并将其作为数组发送,因为在我的服务器上我有:
I want to skip the id
and send it as an array, because on my server I have:
var friends = req.body.friends;
for(var i=0; i<friends.length; i++) {
console.log(friends[i]);
query = query.or([{ 'fb_friend': friends[i] }]);
}
我应该如何修改我的 swift
代码以创建正确的请求?
how should my modify my swift
code so that it creates a correct request?
推荐答案
根据我对你代码的理解,fb_friends
的类型为 [[String:String]]
你想把它转换成[String]
?
From what I understand of your code, fb_friends
have type of [[String:String]]
and you want convert it to [String]
?
您可以使用 .map
从字典中获取 "id"
.
You can use .map
to get "id"
from the dictionary.
let friends = (defaults.objectForKey("fb_friends") as! NSArray)
.map{$0["id"]!}
.joinWithSeparator(",")
let params = [
"friends": friends
]
这篇关于如何将 NSArray 转换为特定的字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!