小编Rob*_*Rob的帖子

Swift协议性能

这个问题涉及在Swift 2.2中作为协议扩展编写的函数的效率.有谁知道加快这个运行时间的方法?

假设我有一个符合Int的协议号

protocol Number: Equatable, IntegerLiteralConvertible {
    init(_ int: Int)
    init(_ number: Self)
    func +(lhs: Self, rhs: Self) -> Self
    func *(lhs: Self, rhs: Self) -> Self
    func -(lhs: Self, rhs: Self) -> Self
    func /(lhs: Self, rhs: Self) -> Self
}
extension Int: Number { }
Run Code Online (Sandbox Code Playgroud)

现在我想写一个阶乘函数作为Number的扩展

extension Number {
    func factorialNumber() -> Self {
       if self == 0 { return 1 }
       return self * (self - 1).factorialNumber()
    }
}
Run Code Online (Sandbox Code Playgroud)

我也写了与Int的扩展相同的功能

extension Int {
    func factorialInt() -> …
Run Code Online (Sandbox Code Playgroud)

performance protocols swift swift2

18
推荐指数
1
解决办法
594
查看次数

Swift错误:无法将类型为UIColor的值指定为CGColor类型

我的视图中有两个输入字段,loginEmailInputloginPasswordInput.

我正在尝试更改边框颜色.我的代码ViewController.swift看起来像这样:

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var loginPasswordInput: UITextField!
    @IBOutlet weak var loginEmailInput: UITextField!

    let borderColor : UIColor = UIColor(red:0.39, green:0.76, blue:0.37, alpha:1)
    loginEmailInput.layer.borderColor = borderColor
    loginPasswordInput.layer.borderColor = borderColor

    override func viewDidLoad() {
        super.viewDidLoad()

        //etc....
Run Code Online (Sandbox Code Playgroud)

但是,这两行都显示错误:

loginEmailInput.layer.borderColor = borderColor
loginPasswordInput.layer.borderColor = borderColor
Run Code Online (Sandbox Code Playgroud)

错误是:

无法将类型为UIColor的值指定为CGColor类型

我该如何解决这个问题?

ios swift swift2

17
推荐指数
1
解决办法
2万
查看次数

不符合协议BindableObject-Xcode 11 Beta 4

玩弄那里的例子。找到了一个项目,该项目的类是可绑定的对象,没有给出任何错误。现在Xcode 11 beta 4已经发布,我得到了错误:

类型“ UserSettings”不符合协议“ BindableObject”

它在错误上有一个修复按钮,当您单击它时,它会添加

typealias PublisherType = <#type#>
Run Code Online (Sandbox Code Playgroud)

希望您填写类型。

类型是什么?

class UserSettings: BindableObject {

    let didChange = PassthroughSubject<Void, Never>()

    var score: Int = 0 {
        didSet {
            didChange.send()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui xcode11

17
推荐指数
2
解决办法
3632
查看次数

Swift 2中的HTTP POST错误处理

我是新来的,这是我的第一个问题......我尝试在Swift 2中编写一个发出HTTP POST请求的应用程序,但我无法弄清楚如何使用Swift 2的新错误处理.任何人都可以请告诉我如何在下面的代码片段中实现Swift 2 的" do-try-catch "错误处理?(此代码段使用swift 1.2的旧错误处理)

func post(params : Dictionary<String, String>, url : String) {
    var request = NSMutableURLRequest(URL: NSURL(string: url)!)
    var session = NSURLSession.sharedSession()
    request.HTTPMethod = "POST"

    var err: NSError?
    request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil/*, error: &err*/)
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")

    var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
        print("Response: \(response)")
        var strData = NSString(data: data!, encoding: NSUTF8StringEncoding)
        print("Body: \(strData)")
        var err: NSError?
        var json = NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves/*, error: &err*/) …
Run Code Online (Sandbox Code Playgroud)

error-handling post http nsjsonserialization swift2

16
推荐指数
2
解决办法
2万
查看次数

Xcode11 的设备支持文件 (iOS 14)

我刚刚将我的 iPhone 更新到 iOS 14 测试版,有人有适用于 Xcode 的 iOS 14 设备支持文件吗?我正在使用 Xcode 11。

xcode ios

15
推荐指数
1
解决办法
3万
查看次数

UIImageView中的渐变/阴影,如Flipboard

UIImageView想在Flipboard中创建一个像阴影一样的渐变.

它的一个例子是该图像中的图片

http://taitegallery.net/wp-content/uploads/2012/01/flipboard-iphone.jpg

正如您在右侧iPhone上看到的那样,顶部和底部有一个较暗的渐变.这样如果图片是白色的,仍然可以看到白色文本.

有人对我如何实现这个有任何建议吗?我是iOS开发的新手,因此对此毫无头绪.谢谢!

gradient shadow uiimageview ios

14
推荐指数
2
解决办法
1万
查看次数

NSTimer内存管理

当我执行此代码时:

[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(showButtons) userInfo:nil repeats:NO];
Run Code Online (Sandbox Code Playgroud)

我需要将它取消或释放它,不管内存管理是什么?

我正在使用ARC

nstimer ios strong-references

13
推荐指数
1
解决办法
6371
查看次数

iOS:在应用程序处于后台时执行上载任务

当iOS应用程序在后台时,真的没有办法运行UPLOAD任务吗?这是荒唐的.一直在看各种各样的东西NSURLSessionUploadTask,dispatch_after甚至NSTimer,但没有任何东西比应用程序在后台放置后的10秒钟更有效.

其他具有上传功能的应用如何运作?比如说,将图像上传到Facebook并将应用程序置于后台会取消上传吗?

为什么iOS不能拥有Android和Windows Phone等后台服务或代理?

这是我的应用程序的一个关键功能,在其他平台上运行完美.

任何帮助表示赞赏:(

upload background ios

13
推荐指数
1
解决办法
9025
查看次数

如何使用Swift检索地址簿联系人?

我不明白为什么我的代码不能用Swift编译.

我试图转换这个Objective-C代码:

CFErrorRef error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);

  if (addressBook != nil) { 
    NSLog(@"Succesful."); 

    NSArray *allContacts = (__bridge_transfer NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
}
Run Code Online (Sandbox Code Playgroud)

这是我目前在Swift中的演绎:

var error:CFErrorRef
var addressBook = ABAddressBookCreateWithOptions(nil, nil);

if (addressBook != nil) {
    println("Succesful.");

    var allContacts:CFArrayRef = ABAddressBookCopyArrayOfAllPeople(addressBook);
}
Run Code Online (Sandbox Code Playgroud)

但是,Xcode报道:

'Unmanaged'不能转换为'CFArrayRef'

你们有个主意吗?

contacts addressbook swift ios8

13
推荐指数
1
解决办法
2万
查看次数

Swift 5中切换案例“ @unknown default”和“ default”之间的区别

从Swift 5开始,@unknown引入了新的case属性。

@unknown使用和不使用时的确切区别是什么?在这种情况下,我们必须使用@unknown关键字?

swift swift5

13
推荐指数
4
解决办法
2751
查看次数