小编Joe*_*ang的帖子

在Lua中,如何获取所有参数,包括可变数量的参数的nil?

对于可变数量的参数,这里是lua.org的一个例子:

function print (...)
    for i,v in ipairs(arg) do
        printResult = printResult .. tostring(v) .. "\t"
    end
    printResult = printResult .. "\n"
end
Run Code Online (Sandbox Code Playgroud)

从上面的示例代码中,如果我打电话

打印("A","B",零,零,"D")

只传入"A"和"B",忽略自第一个零以来的所有参数.因此在这个例子中打印结果是"AB".

是否有可能获得包括nils在内的所有论据?例如,我可以检查参数是否为nil,如果是,我可以将"nil"打印为字符串.所以在这个例子中,我实际上想要打印

AB nil nil D
Run Code Online (Sandbox Code Playgroud)

当然,在对代码进行一些修改之后.但我的问题是......最重要的是,即使其中一些是nils,如何得到所有的论点?

lua

6
推荐指数
1
解决办法
3461
查看次数

在 Lua 中,如何将 nil 参数正确设置为某个默认值?

对于下面的 Lua 代码:

local function foo(x, y, z)
    local x = x or true
    local y = y or 1234
    z = z or "default"
end
Run Code Online (Sandbox Code Playgroud)

一直以为函数里面这三行的意思是:

如果 x/y/z 为零,则 x/y/z 设置为 true/1234/“默认”。否则,它保持原样。因此,我在很多地方都有这样的一行来将参数设置为某个默认值,以防它可能作为 nil 传递给函数。

但是,在我的实验中似乎并不完全正确。我不确定我从哪里学到了这个 Lua 编码概念。如何正确地做到这一点?

parameters lua function

6
推荐指数
1
解决办法
5795
查看次数

启用"颜色混合图层"时,是否可以将非英文字符的UILabel设为绿色?

我有一个自定义单元格的表格视图,我尝试通过Color Blended Layer在模拟器中检查单元格内的所有子视图为绿色来优化它.

UILabel单元格中的背景设置为白色时:

let title = UILabel()
contentView.addSubview(title)
title.background = UIColor.whiteColor()
title.text = "Hi, how are you?"
Run Code Online (Sandbox Code Playgroud)

这个UILabel子视图在模拟器中会变成绿色,这很好.但是,如果我将文本更改为某些中文:

title.text = "??"
Run Code Online (Sandbox Code Playgroud)

UILabel子视图将变为红色.这篇SO帖子提供了有关情况的一些解释.实际上有解决方案吗?

core-graphics uitableview uikit uilabel ios

6
推荐指数
1
解决办法
669
查看次数

如何在Vapor(服务器端Swift)中使用计时器?

我可以使用计时器,例如NSTimer在Vapor(服务器端Swift)中吗?

我希望用Vapor编写的服务器可以偶尔主动执行一些任务.例如,每15分钟从网上轮询一些数据.

如何用Vapor实现这一目标?

vapor server-side-swift

6
推荐指数
2
解决办法
1215
查看次数

如何在通过Open Graph API提取Feed时为每个帖子获取FB计数?

我试图通过使用获取页面的所有帖子

https://graph.facebook.com/PAGE_ID/feed

它就像一个魅力.我可以获得每个帖子的所有信息,除了相同的数量.

Feed会为每个帖子返回"赞",但它会显示前25个喜欢的相似信息.我不知道一个帖子的计数.

我在网上找到的最接近的解决方案是在请求帖子信息时设置"summary = 1",例如

https://graph.facebook.com/POST_ID/likes?summary=1

这将返回一个摘要字段,显示此帖子的相同计数,这正是我需要的.

但是,如果这是解决问题的唯一方法,我必须为每个帖子提供额外的网络请求,只是为了获得类似的计数.我最初只能通过一个网络请求完成这项工作,但现在我已经进行了1 + N次(页面提要中的帖子数量)的网络请求.

我想我一定错过了什么.FB必须有一些方法可以在Feed信息中嵌入类似的计数.就像FB应用程序或网站一样,所有帖子都会立即显示相同的数量,无法再进行N次网络请求以获得每个帖子的相同数量.

希望有人能提供帮助.非常感谢提前.

opengraph

5
推荐指数
1
解决办法
2022
查看次数

如何使用UITableViewCell与UITableViewCellStyle正确重用单元格?

我想使用UITableViewCellStyle.Subtitle样式作为默认表格单元格.我发现一个答案的SO回答是这样的:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell?
    if (cell != nil) {
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell")
    }
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我可以成功使用Subtitle单元格样式.但是,我开始认为可能出现问题?为什么要创建新单元格cell != nil?这样,你永远不会重复使用细胞,不是吗?此外,我可以打电话

let cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell")
Run Code Online (Sandbox Code Playgroud)

我有同样的结果.为什么要将可重复使用的单元格出列然后创建一个新单元?什么是实现细胞再利用的正确方法,并在当时使用UITableViewCellStyle.Subtitle细胞的样式?

UPDATE

请注意,第一段代码cell != nil不是cell == nil.如果我改变cell == nil,代码将不会使用该Subtitle样式.我认为第一个有效,因为它总是创建具有Subtitle风格的新单元格.

objective-c uitableview ios swift

5
推荐指数
1
解决办法
5977
查看次数

在 Swift 3 中,如何修复有关参数标签与 String 类型的任何可用重载不匹配的错误?

在 Swift 2 中,我可以somefile.txt毫无问题地从下面的代码中加载数据:

let fileManager = FileManager.default
let urls = fileManager.urls(for: .applicationSupportDirectory, in: .userDomainMask)
let appDataURL = urls.last.appendingPathComponent("appData")

let fileDestinationUrl = appDataURL!.appendingPathComponent("somefile.txt")

var dataString = ""
do {
    dataString = try String(contentsOfURL: fileDestinationUrl)  //<-- error here
    print("dataString=\(dataString)")
} catch let error as NSError {
    print("Failed reading data in appData Directory, Error: \(error.localizedDescription)")
}
Run Code Online (Sandbox Code Playgroud)

但是,在 Swift 3 中,XCode 在一行中给出了一个错误dataString = try String(contentsOfURL: fileDestinationUrl)

Argument labels '(contentsOfURL:)' do not match any available overloads
Run Code Online (Sandbox Code Playgroud)

如何修复此错误?在 Swift 3 中读取文本文件的正确方法是什么?

swift swift3

5
推荐指数
1
解决办法
9143
查看次数

打开 Dock 后单击应用程序图标时,我可以收到什么事件?

我正在 Swift 中构建一个 OS X 应用程序:

(1) 运行应用程序

(2) 应用程序启动,应用程序图标出现在 Dock 中。

(3) 单击 Dock 中的应用程序图标 <-- 我的应用程序如何获得此操作的通知?

我希望在用户在应用程序运行时单击 Dock 中的应用程序图标后做一些事情。如何获得此操作的通知?

macos swift

5
推荐指数
1
解决办法
1039
查看次数

在Swift中,如何在启动后立即正确获取设备方向?

我使用以下代码查看设备是否处于横向模式:

UIDevice.currentDevice().orientation.isLandscape.boolValue
Run Code Online (Sandbox Code Playgroud)

但是,如果我在启动应用程序之前将设备置于横向模式,则可以正常工作,之后再viewDidLoad调用此代码行,则始终返回false

如果我改用这个:

interfaceOrientation.isLandscape
Run Code Online (Sandbox Code Playgroud)

它返回true,这是正确的,但是编译器正在显示警告interfaceOrientation was deprecated in iOS 8.0

启动应用后立即获得设备定位的正确方法是什么?

orientation uiinterfaceorientation ios swift swift2

4
推荐指数
3
解决办法
3874
查看次数

在Swift中,如何完全从内存中删除UIView?

请考虑以下代码:

class myManager {
    var aView: UIView!

    func createView() {
        aView = UIView()
    }

    func removeView() {
        aView = nil // anything else?
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我创建UIView这样的,后来我想删除它,这是正确的方法吗?我应该注意什么?

uiview swift swift2

4
推荐指数
1
解决办法
3802
查看次数