小编Jee*_*eef的帖子

Swift等价的removeObjectsInRange:

跟踪Swift相当于以下内容时遇到一些麻烦:

//timeArray and locationArray are NSMutableArrays
NSRange removalRange = NSMakeRange(0, i);

[timeArray removeObjectsInRange:removalRange];
[locationArray removeObjectsInRange:removalRange];
Run Code Online (Sandbox Code Playgroud)

我看到Swift确实在API中有一个调用: typealias NSRange = _NSRange但我没有超过那个部分.有帮助吗?

objective-c swift

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

是否可以在Git中的user.name中有一个尾随句点?

以下Git语句

cd periodtest/
git init
git config user.name "Test."

# verify that user.name is 'Test.'
git config user.name

touch README
git add README
git commit -a -m "period test"
Run Code Online (Sandbox Code Playgroud)

结果在以下结帐

# check user name after commit
git log 
And the resulting commit w/out the period was:
commit 9b7e4960fd8129059b5759d1bb937b60241fd70b
Author: Test <email@test.com>
Date:   Wed Oct 1 20:28:28 2014 -0700

    period test
Run Code Online (Sandbox Code Playgroud)

有没有办法让这段时间留在用户名?

git

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

SW的Swift协议扩展自引用问题

我正在寻找一种通过协议扩展为协议添加默认初始化程序的方法.

我的协议是:

protocol TestProtocol {
    var myVar : Double { get set }
    init(value: Double)
    init(existingStruct : TestProtocol)
}
Run Code Online (Sandbox Code Playgroud)

我使用这个协议实现了一个结构:

struct TestStruct : TestProtocol {
    var myVar : Double

    init(value : Double) {
        myVar = value
    }

    init (existingStruct : TestProtocol) {
        myVar = existingStruct.myVar
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试通过扩展来为此协议创建默认初始化程序,我会遇到自我问题:

extension TestProtocol {
    init(value : Double) {
        myVar = value
    }

    init(existingStruct : TestProtocol) {
        myVar = existingStruct.myVar
    }
}
Run Code Online (Sandbox Code Playgroud)

两个赋值行在初始化之前发出错误 变量'self'通过引用传递

有没有办法让这项工作 - 或者我只限于使用课程?

在此输入图像描述

protocols ios swift

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

如何在swift中将Int16转换为两个UInt8字节

我有一些二进制数据,将两个字节的值编码为有符号整数.

bytes[1] = 255  // 0xFF
bytes[2] = 251  // 0xF1
Run Code Online (Sandbox Code Playgroud)

解码

这很容易 - 我可以Int16从这些字节中提取一个值:

Int16(bytes[1]) << 8 | Int16(bytes[2])
Run Code Online (Sandbox Code Playgroud)

编码

这是我遇到问题的地方.我的大多数数据规范要求UInt,这很容易,但我无法提取组成的两个字节Int16

let nv : Int16 = -15
UInt8(nv >> 8) // fail
UInt8(nv)      // fail
Run Code Online (Sandbox Code Playgroud)

我如何提取构成Int16值的两个字节

bit-manipulation swift

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

Swift:如何将闭包传递为函数参数

我试图找出传递一个闭包(完成处理程序)作为另一个函数的参数的语法.

我的两个职能是:

响应处理程序:

func responseHandler(response: NSURLResponse!, data: NSData!, error: NSError!) -> Void {
    var err: NSError


    var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
    println("AsSynchronous\(jsonResult)")

}
Run Code Online (Sandbox Code Playgroud)

查询功能

public func queryAllFlightsWithClosure( ) {

    queryType = .AllFlightsQuery
    let urlPath = "/api/v1/flightplan/"
    let urlString : String = "http://\(self.host):\(self.port)\(urlPath)"
    var url : NSURL = NSURL(string: urlString)!
    var request : NSURLRequest = NSURLRequest(URL: url)

        NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:responseHandler)

}
Run Code Online (Sandbox Code Playgroud)

我想将Query修改为:

public fund queryAllFlightsWithClosure( <CLOSURE>) {
Run Code Online (Sandbox Code Playgroud)

这样我就可以从外部将闭包传递给函数了.我知道有一些关于训练闭包的支持,但我不确定这是否也是如此.我似乎无法使语法正确...

我试过了:

public func queryAllFlightsWithClosure(completionHandler : {(response: …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift

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

在iOS中跨应用程序共享UDP数据(后台/前台或分屏多任务)

我正在编写一个研究应用程序,它利用通过UDP广播数据的特定传感器.有各种商业应用程序使用这个传感器,我们希望能够同时运行我们的应用程序和现有的应用程序.

在过去(iOS 8及以下版本),我们将在后台运行我们的应用程序,以在前台记录数据和不同的应用程序.不幸的是,似乎只有一个应用程序能够绑定到传入的UDP数据(这是有道理的),但是随着即将到来的"并排"应用程序功能,我想知道是否有任何解决方案在应用程序之间共享数据.

我唯一能想到的是以某种方式让我们的应用程序捕获数据并将其重新广播到其他应用程序,但我不知道这是否可能在iOS中,即使它是如何确定"谁"锁定UDP流.

苹果文档位于:https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html#//apple_ref/doc/uid/TP40015145似乎没有提供太多信息.

udp multitasking ios ios9 split-screen-multitasking

11
推荐指数
1
解决办法
491
查看次数

Xcode和可选框架

Linked框架和库下,有一个RequiredOptional选项.

有人可以解释一下哪种情况以及如何使用可选框架?我可以假设看到的情况,我有一些试验数据和IF框架包括我将要启用某种功能,如果不包括比它也许是我不会做的东西....

但是否则我不知道什么时候你想要使用可选框架

(代码示例如果存在则会很棒)

macos xcode ios

11
推荐指数
1
解决办法
4881
查看次数

Swift - 向下转换NSURLResponse到NSHTTPURLResponse以获取响应代码

我正在使用NSURLRequest在SWIFT中构建休息查询

var request : NSURLRequest = NSURLRequest(URL: url)

var connection : NSURLConnection = NSURLConnection(request: request, delegate: self, startImmediately: false)!
connection.start()
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从返回的响应中获取响应代码:

    func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
//...
}
Run Code Online (Sandbox Code Playgroud)

根据Apple: NSHTTPURLResponse它是一个NSURLResponse具有状态代码的子类,但我不确定如何转发我的响应对象,以便我可以看到响应代码.

这似乎没有削减它:

println((NSHTTPURLResponse)response.statusCode)
Run Code Online (Sandbox Code Playgroud)

谢谢

ios swift

10
推荐指数
1
解决办法
6502
查看次数

在什么情况下,人们会在快速测试中使用expectationForNotification

我像什么/时用做有点困惑expectationForNotification而不是expectationWithDescription.我一直无法在swift中找到任何明确的例子来说明你何时以及如何处理这个电话.

我假设它可能是测试通知但看起来它可能只是一个更方便的包装整个expectationForNotification as opposed to通知中心的呼叫.

有人可以简要解释一下它的用途,何时使用它,以及几行示例代码?

谢谢

unit-testing notificationcenter swift

10
推荐指数
1
解决办法
5507
查看次数

在swift中使用NSData

所以我已经想出如何在swift中提取NSData但是我对设置它感到困惑:

var testBytes : [Byte] = [0x14, 0x00, 0xAB, 0x45, 0x49, 0x1F, 0xEF, 0x15,     
                          0xA8, 0x89, 0x78, 0x0F, 0x09, 0xA9, 0x07, 0xB0,
                          0x01, 0x20, 0x01, 0x4E, 0x38, 0x32, 0x35, 0x56,
                          0x20, 0x20, 0x20, 0x00]

var msgData = NSData(bytes: testBytes, length: testBytes.count)

println("\(msgData)")


var length : Int = testBytes.count

var out: NSInteger = 0

let ptr = UnsafePointer<UInt8>(msgData.bytes)
var bytes = UnsafeBufferPointer<UInt8>(start: ptr, count: 28)
Run Code Online (Sandbox Code Playgroud)

因此,如果我想访问一个特定的字节,我可以用以下内容获取它:

let targetAddress = UInt32(bytes[2]) << 16 |
    UInt32(bytes[3]) << 8 |
    UInt32(bytes[4]) << 0
Run Code Online (Sandbox Code Playgroud)

现在说我想用以下内容设置一个值: …

pointers nsdata swift

9
推荐指数
1
解决办法
7138
查看次数