标签: swift3

在swift 3中生成您自己的错误代码

我想要实现的是URLSession在swift 3中执行请求.我在一个单独的函数中执行此操作(以便不为GET和POST单独编写代码)并返回URLSessionDataTask并处理闭包中的成功和失败.有点像这样 -

let task = URLSession.shared.dataTask(with: request) { (data, uRLResponse, responseError) in

     DispatchQueue.main.async {

          var httpResponse = uRLResponse as! HTTPURLResponse

          if responseError != nil && httpResponse.statusCode == 200{

               successHandler(data!)

          }else{

               if(responseError == nil){
                     //Trying to achieve something like below 2 lines
                     //Following line throws an error soo its not possible
                     //var errorTemp = Error(domain:"", code:httpResponse.statusCode, userInfo:nil)

                     //failureHandler(errorTemp)

               }else{

                     failureHandler(responseError!)
               }
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

我不希望处理此函数中的错误条件,并希望使用响应代码生成错误,并返回此错误以在任何调用此函数的位置处理它.任何人都可以告诉我该怎么做?或者这不是处理这种情况的"快速"方式吗?

ios nsurlsession swift3

71
推荐指数
9
解决办法
7万
查看次数

如何使用NSDate在Swift 3中获取时间(小时,分钟,秒)?

如何确定Swift 3中NSDate类的小时,分​​钟和秒?

在Swift 2中:

let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Hour, fromDate: date)
let hour = components.hour
Run Code Online (Sandbox Code Playgroud)

斯威夫特3?

nsdate swift3

69
推荐指数
8
解决办法
11万
查看次数

访问Swift 3中的代码错误

Xcode 8 beta 4中的新功能NSError与Swift Error协议类型相连.这会在处理失败的SKPaymentTransactions 时影响StoreKit .您应该检查以确保没有发生错误,因为事务被取消以了解是否向用户显示错误消息.你通过检查错误来做到这一点code.但有了Error代替NSError,没有code定义.我无法弄清楚如何正确获取错误代码Error.

这在Swift 3的早期版本中有效:

func failedTransaction(_ transaction: SKPaymentTransaction) {
    if let transactionError = transaction.error {
        if transactionError.code != SKErrorCode.paymentCancelled.rawValue {
            //show error to user
        }
     }
     ...
}
Run Code Online (Sandbox Code Playgroud)

现在errorError不是NSError,code是不是成员.

swift swift3

68
推荐指数
4
解决办法
4万
查看次数

如何使用Swift在iOS 10中拨打电话?

我希望我的应用程序能够在单击按钮时调用某个数字.我试图谷歌它但是到目前为止似乎没有iOS 10(openURL已经消失).有人能为我举个例子吗?例如:

@IBAction func callPoliceButton(_ sender: UIButton) {
    // Call the local Police department
}
Run Code Online (Sandbox Code Playgroud)

phone-call ios swift swift3 ios10

68
推荐指数
6
解决办法
7万
查看次数

错误:无法构建Objective-C模块'Firebase'

当我编译应用程序时,我得到一个等于这个错误:

无法构建Objective-C模块'Firebase'

import Firebase我的文件swift中出现此错误.

firebase swift3 ios10 xcode8

68
推荐指数
9
解决办法
5万
查看次数

didReceiveRemoteNotification未调用,iOS 10

在iOS 9.3中,该didReceiveRemoteNotification方法在以下两种情况下都会被调用.

1)当收到推送通知时2)当用户通过点击通知启动应用程序时.

但在iOS上10,我注意到,该didReceiveRemoteNotification方法不,当用户通过点击通知启动应用程序触发.只有在收到通知时才会调用它.因此,在通知启动应用程序后,我无法执行任何进一步操作.

应该解决这个问题?任何的想法?

objective-c apple-push-notifications ios swift3

67
推荐指数
7
解决办法
6万
查看次数

Bundle.main.path(forResource:ofType:inDirectory :)返回nil

尽量不要笑或哭 - 我只是在20年后重新开始编码......

我花了4个多小时查看引用并尝试使用代码片段来获取Bundle.main.path来打开我的文本文件所以我可以读取我的应用程序的数据(我的下一步是适当地解析它).

if let filepath = Bundle.main.path(forResource: "newTest", ofType: "txt")
{
    do
    {
        let contents = try String(contentsOfFile: filepath)
        print(contents)

    }
    catch
    {
        print("Contents could not be loaded.")
    }
}
else
{
    print("newTest.txt not found.")
}
Run Code Online (Sandbox Code Playgroud)

结果是:"找不到newTest.txt." 无论我如何尝试将文件拖放到项目中,在Xcode中创建文件或使用文件 - >添加文件到...菜单项.

macos file ios swift swift3

64
推荐指数
8
解决办法
5万
查看次数

在Swift 3中从数组中删除对象

在我的应用程序中,我在选择单元格时在数组中添加了一个对象,并在重新选择单元格时取消选择并删除对象.我使用了那段代码但是给了我错误.

extension Array {
    func indexOfObject(object : AnyObject) -> NSInteger {
        return (self as NSArray).indexOfObject(object)
    }

    mutating func removeObject(object : AnyObject) {
        for var index = self.indexOfObject(object); index != NSNotFound; index = self.indexOfObject(object) {
            self.removeAtIndex(index)
        }
    }
}

class MyViewController: UITableViewController {
    var arrContacts: [Any] = []
    var contacts: [Any] = []

    func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
        arrContacts.removeObject(contacts[indexPath.row])
    }
}
Run Code Online (Sandbox Code Playgroud)

它给了我2个错误:

C-style for statement has been removed in Swift 3
Value of type '[Any]' has no member …
Run Code Online (Sandbox Code Playgroud)

arrays ios swift swift3

63
推荐指数
7
解决办法
7万
查看次数

如何在swift中将数据转换为十六进制字符串

我想要在Swift中使用数据值的十六进制表示.

最终我想要像这样使用它:

let data = Data(base64Encoded: "aGVsbG8gd29ybGQ=")!
print(data.hexString)
Run Code Online (Sandbox Code Playgroud)

swift swift3

62
推荐指数
6
解决办法
4万
查看次数

Xcode 8.0 Swift 3.0缓慢索引和构建

我已经安装了Xcode 8.0并将Swift 2.2转换为3.0(这个过程也花费了很多时间,我只是让我的Mac一整晚都在运行).我没有一个大项目(大约20个文件).我也在用Pods.索引以前的Xcode版本(<8.0)工作得很快但现在,升级后,进度条卡在一个位置(我已经等了一个小时).

我试过的事情对我没有帮助:

  • 清理DerivedData文件夹并重新启动Xcode
  • 清理项目并重新启动Xcode
  • 删除Pods目录,<project>.xcworkspace然后重新安装
  • 重启Mac
  • 尝试没有Pods的构建项目
  • 重新安装Xcode
  • 在克隆项目的另一台Mac上尝试

当开发人员花费数小时来解决这些荒谬的问题时,制作这样的软件版本真的不是很酷.这非常令人失望.任何想法如何解决这一问题?

indexing xcode ios swift3 xcode8

61
推荐指数
5
解决办法
3万
查看次数