我现在的代码似乎没有返回任何东西,我无法找出导致问题的原因.
func getQuests(category: NSString, count: Int) -> NSArray {
var quests = NSArray()
Alamofire.request(.GET, apiUrlString, parameters: ["category": category, "count": count])
.responseJSON { (request, response, json, error) in
dispatch_async(dispatch_get_main_queue(), {
quests = json as NSArray
})
}
println(quests) #=> ()
return quests
}
Run Code Online (Sandbox Code Playgroud)
有人知道如何解决我遇到的问题吗?
[更新]:这是状态.
请看第五行和第八行.我无法完成任务的任务.
var quests = NSArray()
getQuests("normal", count: 30, completionHandler: {
quests in
self.quests = quests
})
println(self.quests) #=> ()
func getQuests(category: NSString, count: Int, completionHandler: (NSArray -> Void)) {
var quests = NSArray()
Alamofire.request(.GET, apiUrlString, …Run Code Online (Sandbox Code Playgroud) 我在使用GCD的Objective-C中遇到以下问题我无法弄清楚:
我使用以下方法计算一些648个瓷砖的东西.首先处理瓦片的顺序由设置变量"pi"的一些算法给出.变量"loaded"在此上下文中是全局变量,从0开始并正确地上升到647.
不使用块时,一切都很完美.
while (loaded < [self.tiles count]) {
long pi = /* tricky way to calculate the position index to set */;
NSLog(@"loaded: %d", loaded);
// Do this in a separate thread
dispatch_async(loader, ^{
NSLog(@"loaded ->: %d", loaded);
[self.tiles[loaded] setPositionIndexTo:pi];
});
loaded++;
}
Run Code Online (Sandbox Code Playgroud)
问题:
我得到一个例外,因为该块试图访问self.tiles [648]!在Apple的块文档中,可以看出,在创建块时,块中的变量值被捕获,所以我不明白,这是怎么回事.我确实理解加载的变量实际上最终确实具有值648,这应该在不执行的情况下中止循环.其他一些奇怪的是,值0也从未在块中使用,但它从1开始.有时也可能看到块在有关加载值的循环之前,有时会错过值,或做两次.这是一些输出:
loaded ->: 612
loaded: 613
loaded ->: 613
loaded ->: 614
loaded: 614
loaded ->: 614
loaded: 615
loaded: 616
loaded ->: 615
loaded: 617
loaded ->: 617
Run Code Online (Sandbox Code Playgroud)
为什么以及如何实现这一目标?
感谢任何澄清,正如我认为Apple的文档明确指出的那样,当创建块时,应该捕获"已加载"的值而不再对块进行更改.
我在 Laravel 5.7 项目中使用 UUID 密钥,它运行得非常好。
当通过路由从数据库请求一个项目时,键被查找并作为一个字符串进行比较。当请求发送大写的 uuid 字符串时,路由模型绑定将找不到模型,尽管 Laravel 的 UUID 字符串是小写的。
有没有办法确保在执行查找查询之前键是小写的?
文档解释说我可以像这样自定义解析逻辑:
Route::bind('user', function ($value) {
return App\User::where('name', $value)->first() ?? abort(404);
});
Run Code Online (Sandbox Code Playgroud)
但是这是无用的,因为它仅适用于特定的通配符(此处为“用户”),但我需要将其应用于每个绑定,并且该类当然是动态的。
有没有办法自定义该行为,或者有人可以将我指向 Laravel 进行动态解析的代码吗?
我不想退回到仅从 url 中获取标识符,然后在每条路线中找到自己。我真的很想更改所有路由模型绑定的行为。