我是新来的,这是我的第一个问题......我尝试在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) 有人能告诉我如何在 Swift2 中找出 Port 是否繁忙吗?
因为我写了一个 mac 应用程序,它有一个自写的 Tcp 服务器,但有时它无法启动,因为它“无法绑定到端口”。那么如何检查端口是否未使用,再次阻止 Tcp 服务器的启动按钮,直到端口空闲?
我不想要一个新的框架。
谢谢
有人可以告诉我如何将系统框架链接到 Swift 包管理器中的目标吗?当我直接在 Xcode 中链接它时,它可以完美运行,但我不知道如何在 Package.swift 文件中指定它。
提前致谢,迈克尔
有没有办法从 Swift 4 中的字符串创建 Keypath 以通过其路径或变量名访问结构中的值
最后我发现我应该使用 CodingKeys 而不是 KeyPaths 来通过 String 访问结构的变量的值
提前致谢,迈克尔
我在Swift2中编写了一个(Mac)应用程序,它应该搜索具有特定主题的教师的Realm数据库.领域中教师对象的定义如下所示:
class Teacher: Object {
var subjects = List<Subject>()
}
Run Code Online (Sandbox Code Playgroud)
这个类非常复杂所以我删除了一些行...
这里的函数应该过滤具有特定主题的教师数据库,并仅返回教师姓名(如String Array :) [String]:
func getAllTeacherNamesForSubject(subject: String) -> [String] {
// Open Database
let realm = openRealmDatabase()
// Or open it this way:
// RLMRealm.setDefaultRealmPath("/Users/name/Data.realm")
// var realm: Realm!
// realm = try! Realm()
// filter the Database with Predicate
let objects = realm.objects(Teacher).filter("!!! Need Help !!!", subject)
// How can I filter the Database? I want to get all the Teachers for that subject
// …Run Code Online (Sandbox Code Playgroud) 如何从嵌套类创建 KeyPath?我不知道如何使用反斜杠访问嵌套类。
示例代码:
class Config {
var clients: Array<Client> = [Client()]
// Nested Class
class Client {
public var name: String = "SomeName"
}
}
var conf = Config()
func accessValue<T, U>(
_ keyPath: ReferenceWritableKeyPath<Config, Array<T>>,
valuePath: ReferenceWritableKeyPath<T ,U>) -> Any {
let member: Array<T> = conf[keyPath: keyPath]
let firstMember: T = member.first!
let value = firstMember[keyPath: valuePath]
return value
}
// How should I call this function?
print(accessValue(\Config.clients, valuePath: wanna_know))
// Should print "SomeName"
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我想将 SwiftyJSON 的所有 switch 语句转换为 if-else 条件,因为 switch 语句会导致大量内存泄漏。
我几乎已经转换了所有的 switch 语句,但我被这个困住了:
fileprivate subscript(sub sub: JSONSubscriptType) -> JSON {
...
switch sub.jsonKey {
case .index(let index): return self[index: index]
case .key(let key): return self[key: key]
}
...
}
public enum JSONKey {
case index(Int)
case key(String)
}
Run Code Online (Sandbox Code Playgroud)
有人能帮助我吗?