我在 swift 中有一些旧版本的代码,如下所示
let initVc:UIViewController? = self.initViewController!
switch initVc {
case let vc as ProductListViewController:
pageMenu?.moveToPage(0)
case let vc as OrderListViewController:
pageMenu?.moveToPage(1)
case let vc as CustomerListViewController:
pageMenu?.moveToPage(2)
default:
pageMenu?.moveToPage(0)
}
Run Code Online (Sandbox Code Playgroud)
上面的代码self.initViewController是父视图控制器,从那里推送这个控制器。
更新到 swift 2.0 后出现错误,如下所示
Immutable value 'vc' was never used; consider replacing with '_' or removing it
Run Code Online (Sandbox Code Playgroud)
请提出满足此要求所需的更改。
我在 Objective-C 项目中使用 Swift 时遇到了一些问题。
例如,我使用以下库(https://github.com/Hearst-DD/ObjectMapper)。我已经尝试在我的子类之前添加 @objc 指令,但据说只有从 NSObject 继承的类才能声明为 @objc。似乎它只与 Swift 2.0 有关
所以我的问题是,如何在我的 Objective-C 项目中使用纯 swift 类或库?如果还有可能...
我的模型如下所示: import Foundation import ObjectMapper
class SSStreetAddressRequest: Mappable {
var street:String?
var city:String?
var state:String?
var zip:String?
required init?(_ map: Map){
}
func mapping(map: Map) {
street <- map["street"]
city <- map["city"]
state <- map["state"]
zip <- map["zip"]
}
}
Run Code Online (Sandbox Code Playgroud)
Mappable 是一个协议:https : //github.com/Hearst-DD/ObjectMapper/blob/master/ObjectMapper/Core/Mapper.swift
我正在尝试以编程方式在 iOS 设备上播放 m4a 文件。该文件从服务器下载并存储。当用户按下按钮时,它被播放。该文件从设备复制到 OSX 时播放正常。我正在使用代码
var player:AVAudioPlayer = AVAudioPlayer()
func playAudio(sender: UIButton!) {
let audioPath = FileUtils.getPath(audioPaths[sender.tag])
print("PATH " + audioPath)//The printed path IS DEFINETLY correct
do{
player = try! AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: audioPath))
player.prepareToPlay()
player.play()
}
}
Run Code Online (Sandbox Code Playgroud)
路径是正确的,所以我不确定为什么它不起作用。可能是格式(即使它在 OSX 上播放)?
示例文件:https : //www.dropbox.com/s/csewwg6n9vzan5z/131015-08%3A13%3A30.m4a?dl=0
我正在关注 Youtube 上的斯坦福斯威夫特课程。在第一课中,您首先要为计算器制作布局。我已将计算器中的按钮链接到我的代码,并生成了以下代码:
@IBAction func appendDigit(sender: UIButton) {
let digit = sender.currentTitle
print(_)
}
Run Code Online (Sandbox Code Playgroud)
我不断收到警告“永不使用不可变值 X 考虑用 Swift 2 中的‘_’错误替换”常量“数字”。我只是不明白我在这里做错了什么。我的意思是,它仍然可以运行,但据说我不需要使用这个常量?我的意思是,例如说我想打印这个常量,而不是我使用它,所以我不能用 _ 替换它。谁能帮我澄清一下?斯坦福课程的教授似乎也没有任何问题,所以它应该是 Xcode 最近的修复。顺便说一句,我使用的是最新版本的 Xcode。
我试图在 swift 2 中确定 UITableView 的哪个部分是可见的(在顶部,如果同时有 2 个部分)。到目前为止,我找到了这个解决方案: 有没有办法知道用户是向上还是向下滚动 tableview ? 在 swift IOS 中,这个:如何获取 UITableView 的可见部分?还有这个: Swift - UITableView 滚动事件
由于以下原因,他们都不为我工作:
1.我不能添加UIScrollViewDelegate,因为swift 2在冗余符合协议时给出错误(因为它是UITalbeView,并且它已经符合UIScrollView)。
2.然而,这:
func scrollViewDidScroll () {
print("scrolled: \(self.tableView.indexPathsForVisibleRows)")
}
Run Code Online (Sandbox Code Playgroud)
永远不会被推出。
UITableView 的委托和数据源是通过故事板界面构建器定义的。
你如何在swift 2中确定UITableViewController 正在滚动,哪个部分是可见的?
由于函数是 Swift 中的一等公民,我可以这样做:
func someFunc(arg: Int) -> Int { return 1}
let v = someFunc
let out = v(3)
Run Code Online (Sandbox Code Playgroud)
这按预期工作。但同样的事情不能应用于似乎有点奇怪的运算符,因为运算符实际上只是函数。
func +(lhs: Int, rhs: Int) -> Int { return 1}
let op = + // results in an error
Run Code Online (Sandbox Code Playgroud)
有没有实际的方法来完成将运算符分配给变量?或者是将运算符包装在另一个可以分配的函数中的唯一方法?
您好,我正在尝试制作一个日期选择器,以限制至少 18 岁的年龄,通过在日期选择器中选择出生日期,然后我希望我的代码计算该人是否年满 18 岁才能进行下一步.
到目前为止,我的代码如下所示:
@IBAction func veryfyButton(sender: AnyObject) {
var myDateConverterObject = NSDateFormatter()
let formatter = NSDateFormatter()
let dateAsDate = datePicker.date
let dateAsNow = NSDate()
let interval = dateAsNow.timeIntervalSinceDate(dateAsDate)
let convertedDate = myDateConverterObject.stringFromDate(dateAsNow)
print(interval / 1000)
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 Swift 2 处理移动应用程序功能,我试图将 RealmDB 结果对象作为参数传递。
func myFunction(myDBresults: Results){
Code to do stuff
}
Run Code Online (Sandbox Code Playgroud)
Xcode 给出了一个指向“结果”中 R 的向上箭头的错误:
对泛型类型“结果”的引用需要 <...> 中的参数
我不知道这里需要什么,因为我还在学习 Swift。我能得到一些关于这里需要什么的指示吗?
我有以下用户表结构 Firebase
正如您在我打开的用户中看到的那样,我有一个帖子部分,在这个帖子部分中保存了该用户发布的所有文章的 ID。
我面临的问题如下:
当用户创建新文章时,它保存在帖子表中,保存后我返回新生成的 ID,然后将其传递给用户表,我尝试将新创建的 ID 插入用户的帖子部分,因此我假设 URL 是这样的:
Users/{UserId}/Posts
Run Code Online (Sandbox Code Playgroud)
然而,所有这些都创建了一个名为 post 的新部分,它实际上并没有将记录插入给定区域。
我不起作用的代码如下:
let linkPost = [childautoID: true]
FIRDatabase.database().reference().child("Users/\(UserId)/Posts").child(UserId).setValue(linkPost)
Run Code Online (Sandbox Code Playgroud)
仅供参考,目前在我手动添加的帖子中的两个 ID。
我还尝试了以下方法:
FIRDatabase.database().reference().child("Users/\(UserId)/Posts").setValue(linkPost)
Run Code Online (Sandbox Code Playgroud)
但是,所有这些都会删除所有现有的 ID,然后插入新的 ID。
我正在尝试从我的 swift mac 应用程序运行终端命令,我希望用户像在终端中一样输入任何命令,而不必指定真实路径。有没有办法运行命令并使其在 $PATH 变量中指定的每个路径中查找?
我可以在指定路径时运行命令,但我需要它从系统 $PATH 变量中的任何路径自动查找二进制文件
let path = "/usr/bin/killall"
let arguments = ["Dock"]
let task = Process.launchedProcess(launchPath: path, arguments: arguments)
task.waitUntilExit()
Run Code Online (Sandbox Code Playgroud)
将来我想读取 .sh 文件并运行其中的每一行,因此对于长脚本,并非所有二进制文件都在默认路径中。
谢谢!