我一直试图让这个工作大概6个小时现在无济于事,阅读我可以在这个主题上找到的每个stackoverflow问题.
我试图从单个标签中获取100张,200张或500张照片:
func hashtags(hashtag: String, nextMaxTagId: String?) -> RequestParamters {
var params = "/tags/\(hashtag)/media/recent|access_token=\(accessToken)"
var parameters = Dictionary<String, AnyObject>()
parameters["access_token"] = accessToken
let urlString = "https://api.instagram.com/v1/tags/\(hashtag)/media/recent"
if let nextMaxTagId = nextMaxTagId {
params += "|max_tag_id=\(nextMaxTagId)"
parameters["max_tag_id"] = nextMaxTagId
}
let sig = HMAC.signWithKey(C.InstagramClientSecret(), usingData: params)
parameters["sig"] = sig
return (urlString: urlString, parameters: parameters)
}
Run Code Online (Sandbox Code Playgroud)
这是我用来为我的请求构建我的URL和参数.我的第一个请求没有nextMaxTagId,并且该请求通过,返回20个图像和一个paginationjson.
然后,当我next_max_tag_id从分页块中提取并使用该参数创建请求时,我得到另外20个图像,但它们与之前的图像相同,现在我没有得到分页块.
我正确地签署了我的请求(因为我在整个应用程序中的所有其他API请求都没有问题)并且我不在沙盒模式下.
编辑:我也尝试过使用min_tag_id=\(nextMinTagId),在下一个请求中仍然没有收到分页.
我做了一个小操场,用自定义对象对Set操作进行一些测试,但它们仍然失败,我不知道为什么.
class User: NSObject {
let id: String
init(id: String) {
self.id = id
super.init()
}
override var hashValue: Int {
get {
return id.hashValue
}
}
override var description: String {
get {
return id
}
}
}
func ==(lhs: User, rhs: User) -> Bool {
return lhs.hashValue == rhs.hashValue
}
Run Code Online (Sandbox Code Playgroud)
然后,我做了两组User对象:
let user1 = User(id: "zach")
let user2 = User(id: "john")
let user3 = User(id: "shane")
let user4 = User(id: "john")
let user5 = User(id: "shane") …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来获取String和提取表情符号字符.我知道Emojis是Unicode的一部分,所以我需要删除某些Unicode字符子集.我真的不知道从哪里开始.
我正在尝试分割数组的安全方法.
我知道你可以把一个数组的子集做成这样的事情:
let arr = [1,2,3,4,5]
print(arr[0..<3])
Run Code Online (Sandbox Code Playgroud)
它会打印出来 [1,2,3]
如果你尝试以下相同的 arr
print(arr[3..<9])
Run Code Online (Sandbox Code Playgroud)
该程序将崩溃
我想创建一个数组扩展而不是崩溃,产生尽可能多的元素,因此它将打印
[4,5]
subscript(safe range: Range) -> Element? {
}
Run Code Online (Sandbox Code Playgroud)