我正在尝试将查询结果的数量存储到一个整数中,以便我可以使用它来确定表中的行数.但是,我收到以下错误:Variable 'numberOfGames' captured by a closure before being initialized'在线query.findObjectsInBackgroundWithBlock{.
我也收到其他错误Variable 'numberOfGames' used before being initialized就行了return numberOfGames.
这是包含两个错误的函数:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
var user: PFUser!
var numberOfGames: Int
//...query code....removed to make it easier to read
var query = PFQuery.orQueryWithSubqueries([userQuery, userQuery2, currentUserQuery, currentUserQuery2])
query.findObjectsInBackgroundWithBlock{
(results: [AnyObject]?, error: NSError?) -> Void in
if error != nil {
println(error)
}
if error == nil{
if results != nil{
println(results)
numberOfGames …Run Code Online (Sandbox Code Playgroud) 我目前有一个自定义导航控制器,其中的条形按钮项目只是文本按钮.是否可以保留条形按钮项目的标题,但也可以将它们设置为图像(图标图像+下面的标题).
class NavigationController: UINavigationController
{
var mode: NavigationMode = .Swipe {
didSet {
self.setButtonAttributes()
}
}
private var leftBarButton: UIBarButtonItem!
private var middleBarButton: UIBarButtonItem!
private var rightBarButton: UIBarButtonItem!
private var rightBarButton2: UIBarButtonItem!
override func viewDidLoad()
{
super.viewDidLoad()
}
func configureNavigationItem(navigationItem: UINavigationItem)
{
//Configure the bar buttons text and actions
if (self.leftBarButton == nil) {
self.leftBarButton = UIBarButtonItem(title: "Menu1", style: .Plain,target: self, action: "menu1Pressed:")
}
if (self.middleBarButton == nil) {
self.middleBarButton = UIBarButtonItem(title: "Games", style: .Plain, target: self, action: "gamesPressed:")
} …Run Code Online (Sandbox Code Playgroud) 我有一个保存在Firestore字段中的日期作为我想要转换为Swift中的日期的时间戳:
June 19,2018 at 7:20:21 PM UTC-4
我尝试了以下但是我收到一个错误:
let date = Date(timeIntervalSince1970: postTimestamp as! TimeInterval)
错误:
Could not cast value of type 'FIRTimestamp' (0x104fa8b98) to 'NSNumber'
我想转换为Date的原因是我可以使用此Date扩展来模仿您在Instagram帖子上看到的时间戳:
extension Date {
func timeAgoDisplay() -> String {
let secondsAgo = Int(Date().timeIntervalSince(self))
let minute = 60
let hour = 60 * minute
let day = 24 * hour
let week = 7 * day
if secondsAgo < minute {
return "\(secondsAgo) seconds ago"
} else if secondsAgo < hour {
return "\(secondsAgo / …Run Code Online (Sandbox Code Playgroud) 我正在创建一个简单的聊天应用程序来学习Swift和Firebase.我有一个查询,检查聊天室的消息加载到tableView中.查询返回快照,但我无法正确存储和加载数据.我从快照创建了一个字典,所以我可以获得各个子值,但它们返回nil:
query.observeSingleEvent(of: .childAdded, with: { snapshot in
print(snapshot)
let indexPaths = self.messages.enumerated().map {
IndexPath(row: $0.0, section: 0)
}
guard let messagesDict = snapshot.value as? [String:AnyObject] else { return }
guard let sender = messagesDict["sender"] as? String else { return }
guard let text = messagesDict["text"] as? String else { return }
guard let timestamp = messagesDict["timestamp"] as? Int else { return }
let message = Message.init(key: snapshot.key, sender: sender as! String, text: text as! String, timestamp: timestamp)
self.messages.append(message)
self.tableView.reloadData()
}) …Run Code Online (Sandbox Code Playgroud) 我将我的应用程序部署到Heroku,但只加载了资产\图像.CSS文件(特别是包含90%CSS的文件,custom.css)未加载.我在本地预编译了资产并将它们推送到Heroku而没有运气.仅加载图像,而不是custom.css文件.
我注意到Heroku日志中有一个有趣的错误:
开始获取"/users/css/parallax-slider.css"为77.777.777.77于2013-06-13 02:42:09 +0000 2013-06-13T02:42:09.016864 + 00:00 app [web.1] :ActionController :: RoutingError(没有路由匹配[GET]"/users/css/parallax-slider.css"):
为什么它在我的用户控制器文件夹中寻找css?这是应用程序无法加载custom.css文件的原因吗?
production.rb
App::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# Code is not reloaded between requests
config.cache_classes = true
# Full error reports are disabled and caching is turned on
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Compress JavaScripts and CSS
config.assets.compress = false
# …Run Code Online (Sandbox Code Playgroud) 在Swift 2中,我在Storyboard中使用了用户定义的运行时属性,并使用了tintColor的关键路径来更改标签栏项目图标颜色.但是,看起来tintColor已经被Swift 3删除了.如何更改Swift 3中标签栏控制器中标签栏项目的选定颜色?
谢谢!
编辑:附加截图
当我尝试访问包含创建帖子的表单的页面时,我在Rails应用程序中收到以下错误.我正在尝试在他的示例应用程序中实现类似于Michael Hartl的Micropost功能的功能:
NoMethodError in Home#index
undefined method `posts_path' for #<#<Class:0xb5c70744>:0xb60013b8>
Run Code Online (Sandbox Code Playgroud)
这是索引视图页面,其中包含插入表单的代码:
<%= render 'shared/post_form' if user_signed_in? %>
Run Code Online (Sandbox Code Playgroud)
_post_form.html.erb:
<%= form_for(@post) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "Provide your network with a status update..." %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这是Home控制器:
class HomeController < ApplicationController
before_filter :authenticate_user!
def index
#render :text => "Welcome #{current_user.email}!"
@users = User.all
@post = current_user.posts.build if signed_in?
end
end
Run Code Online (Sandbox Code Playgroud)
我可以在查看代码时使用一些帮助.我正盯着它,我需要别人为我审查.我是Rails的新手,如果我没有提供必要的信息,请原谅我. …
我正在尝试按照如何在这里实现jquery-tokeninput的说明:
如何使用jquery-Tokeninput和Acts-as-taggable-on
我正在尝试将标签附加到"帖子".我可以使用表单中的文本字段来创建新标签.但是,javascript根本不会发射.好像没有任何代码存在.我没有收到任何错误消息.文本字段仅用作普通文本字段,不会触发任何javascript事件.可能是什么问题?这是我的相关代码:
发布模型
attr_accessible :tag_list
acts_as_taggable_on :tags
Run Code Online (Sandbox Code Playgroud)
发布控制器
def tags
query = params[:q]
if query[-1,1] == " "
query = query.gsub(" ", "")
Tag.find_or_create_by_name(query)
end
#Do the search in memory for better performance
@tags = ActsAsTaggableOn::Tag.all
@tags = @tags.select { |v| v.name =~ /#{query}/i }
respond_to do |format|
format.json{ render :json => @tags.map(&:attributes) }
end
end
Run Code Online (Sandbox Code Playgroud)
routes#它必须找到tags.json或在我的情况下/products/tags.json得到"posts/tags"=>"posts#tags",:as =>:tags
的application.js
$(function() {
$("#post_tags").tokenInput("/posts/tags.json", {
prePopulate: $("#post_tags").data("pre"),
preventDuplicates: true,
noResultsText: "No results, needs to be created.",
animateDropdown: false
});
});
Run Code Online (Sandbox Code Playgroud)
出于沮丧,我还创建了一个posts.js.coffee文件,看看是不是问题所在: …
我正在尝试在我的应用程序中的表单中添加一个tokeninput jquery字段,允许用户发布状态更新.我希望用户能够将作品(单独的模型)附加到状态更新.我正在使用act_as_taggable_on gem,我的查询指定标签上下文"工作".但是,该字段不会加载任何搜索结果.
我实际上有一个第二个tokeninput字段,允许用户将标签附加到状态更新,就像这个网站使用标签附加到此发行票.它工作正常!我正在尝试镜像该功能以指定搜索工作模型的上下文,并且我正在努力实现.
有任何想法吗?非常感谢您的时间和帮助!这是相关代码:
发布模型
attr_accessible :content, :tag_list, :work_list
acts_as_taggable_on :tags
acts_as_taggable_on :works
Run Code Online (Sandbox Code Playgroud)
后控制器(更新)
def work_list
query = params[:q]
@work_list = ActsAsTaggableOn::Tag.includes(:taggings).where("taggings.context = 'works'").where("tags.name ILIKE ?", "%#{params[:q].downcase.to_s}%").all
@work_list = @work_list.select { |v| v.name =~ /#{query}/i }
respond_to do |format|
format.json { render :json => @work_list.map{|w| {:id => w.name, :name => w.name }}}
end
end
def tags
query = params[:q]
if query[-1,1] == " "
query = query.gsub(" ", "")
ActsAsTaggableOn::Tag.find_or_create_by_name(query)
end
#Do the search in memory for better performance …Run Code Online (Sandbox Code Playgroud) 当我将以下Firebase数据库数据加载到我的tableView中时,数据按日期按升序排序.如何通过降序(在顶部显示最新的帖子)来订购?
在Xcode中查询:
let ref = self.rootRef.child("posts").queryOrderedByChild("date").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
Run Code Online (Sandbox Code Playgroud)
JSON导出:
"posts" : {
"-KMFYKt7rmfZINetx1hF" : {
"date" : "07/09/16 12:46 PM",
"postedBy" : "sJUCytVIWmX7CgmrypqNai8vGBg2",
"status" : "test"
},
"-KMFYZeJmgvmnqZ4OhT_" : {
"date" : "07/09/16 12:47 PM",
"postedBy" : "sJUCytVIWmX7CgmrypqNai8vGBg2",
"status" : "test"
},
Run Code Online (Sandbox Code Playgroud)
谢谢!!
编辑:感谢Bawpotter,代码是完整的解决方案
更新的查询:
let ref = self.rootRef.child("posts").queryOrderedByChild("date").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
let post = Post.init(key: snapshot.key, date: snapshot.value!["date"] as! String, postedBy: snapshot.value!["postedBy"] as! String, status: snapshot.value!["status"] as! String)
self.posts.append(post)
self.tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: self.posts.count-1, inSection: …Run Code Online (Sandbox Code Playgroud) swift ×6
ios ×4
firebase ×3
javascript ×2
jquery ×2
swift2 ×2
closures ×1
heroku ×1
storyboard ×1
swift3 ×1
uitableview ×1