标签: swift2

如何在swift 2中将switch case与UIViewController作为输入进行比较

我在 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)

请提出满足此要求所需的更改。

iphone ios swift swift2

0
推荐指数
1
解决办法
1657
查看次数

如何在 Objective-C 中使用 Swift 非 NSObject 子类

我在 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

objective-c ios swift swift2

0
推荐指数
1
解决办法
2744
查看次数

Swift 2 - m4a 文件无法在 iOS 上播放

我正在尝试以编程方式在 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

m4a avaudioplayer ios swift2

0
推荐指数
1
解决办法
1848
查看次数

永远不会使用不可变值 X 考虑在 Swift 2 中替换为“_”错误

我正在关注 Youtube 上的斯坦福斯威夫特课程。在第一课中,您首先要为计算器制作布局。我已将计算器中的按钮链接到我的代码,并生成了以下代码:

    @IBAction func appendDigit(sender: UIButton) {
    let digit = sender.currentTitle

    print(_)
}
Run Code Online (Sandbox Code Playgroud)

我不断收到警告“永不使用不可变值 X 考虑用 Swift 2 中的‘_’错误替换”常量“数字”。我只是不明白我在这里做错了什么。我的意思是,它仍然可以运行,但据说我不需要使用这个常量?我的意思是,例如说我想打印这个常量,而不是我使用它,所以我不能用 _ 替换它。谁能帮我澄清一下?斯坦福课程的教授似乎也没有任何问题,所以它应该是 Xcode 最近的修复。顺便说一句,我使用的是最新版本的 Xcode。

swift swift2

0
推荐指数
1
解决办法
2112
查看次数

确定滚动时 UITableViewController 的哪些部分是可见的

我试图在 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 正在滚动,哪个部分是可见的?

xcode uitableview ios swift2

0
推荐指数
1
解决办法
1494
查看次数

将变量设置为运算符函数

由于函数是 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)

有没有实际的方法来完成将运算符分配给变量?或者是将运算符包装在另一个可以分配的函数中的唯一方法?

swift swift2

0
推荐指数
1
解决办法
70
查看次数

日期选择器年龄验证 IOS Swift

您好,我正在尝试制作一个日期选择器,以限制至少 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 swift2

0
推荐指数
1
解决办法
3379
查看次数

将 RealmDB 结果对象作为 Swift 2 函数参数传递

我正在使用 Swift 2 处理移动应用程序功能,我试图将 RealmDB 结果对象作为参数传递。

func myFunction(myDBresults: Results){
    Code to do stuff
}
Run Code Online (Sandbox Code Playgroud)

Xcode 给出了一个指向“结果”中 R 的向上箭头的错误:

对泛型类型“结果”的引用需要 <...> 中的参数

我不知道这里需要什么,因为我还在学习 Swift。我能得到一些关于这里需要什么的指示吗?

realm ios8 swift2

0
推荐指数
1
解决办法
139
查看次数

Firebase,iOS:将键值对附加到子节点中

我有以下用户表结构 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。

firebase firebase-realtime-database swift2

0
推荐指数
1
解决办法
1204
查看次数

Swift mac 应用程序,在不知道路径的情况下运行终端命令(因此它会在 $PATH 中的每个路径中查找)?

我正在尝试从我的 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 文件并运行其中的每一行,因此对于长脚本,并非所有二进制文件都在默认路径中。

谢谢!

macos swift swift2 swift3 swift4

0
推荐指数
1
解决办法
1021
查看次数