小编pic*_*ano的帖子

将UIView的CALayer动画化为圆角

我试图动画我视角的四舍五入.cornerRadius属性被列为可动画,但我似乎无法让它工作.我实际上也无法获得任何其他属性的动画,但角落是我感兴趣的.这是我的代码,它非常简单:

[CATransaction begin];
[CATransaction setValue: [NSNumber numberWithFloat: 2.0f] forKey:kCATransactionAnimationDuration];

self.myView.layer.cornerRadius = 50.0f;

[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)

我在这里想念的是什么?角落变圆,但它是瞬间而不是2秒钟.

animation core-animation rounded-corners catransition ios

8
推荐指数
2
解决办法
4451
查看次数

iPhone:如何使用Xcode向Web服务发送HTTP请求

如何使用Objective-C将HTTP请求发送到Web服务?我需要从我的MySQL数据库中获取一些数据,所以我需要发送请求以便我可以获取数据.

iphone http objective-c ios

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

在字符串插值中使用选项时,内存泄漏

我在使用Swift进行字符串插值时检测到内存泄漏.使用"泄漏"工具,它将泄漏的对象显示为"Malloc 32字节",但没有负责的库或框架.这似乎是由字符串插值中的选项使用引起的.

class MySwiftObject
{
    let boundHost:String?
    let port:UInt16

    init(boundHost: String?, port: UInt16)
    {
        if boundHost {
            self.boundHost = boundHost!
        }
        self.port = port

        // leaks
        println("Server created with host: \(self.boundHost) and port: \(self.port).")
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我通过附加片段简单地构建String来替换字符串插值,则不会发生内存泄漏.

    // does not leak
    var message = "Server created with host: "
    if self.boundHost
    {
        message += self.boundHost!
    }
    else
    {
        message += "*"
    }
    message += " and port: \(self.port)"
    println(message)
Run Code Online (Sandbox Code Playgroud)

上面有什么我做错了,或者只是一个Swift bug?

ios swift

8
推荐指数
1
解决办法
2426
查看次数

如何在Xcode堆栈跟踪中查找NSInternalInconsistencyException的源代码

我正在使用Objective-C中的iPhone应用程序(使用Xcode 6.1.1和Parse),我只是觉得这个很神秘NSInternalInconsistencyException:

Caught "NSInternalInconsistencyException" with reason "Tried to save an object with a pointer to a new, unsaved object.":

所以我对Stack Overflow社区的问题是:

有人如何读取此堆栈跟踪以查找问题的实际来源?我没有在此堆栈跟踪中的任何位置看到任何可识别的文件名,方法调用或行号.

或者,如果不是简单地读取堆栈跟踪并且涉及其他技术,那么开发人员应该采取哪些适当的下一步来追踪此类错误的来源?

这是输出到我的控制台的完整堆栈跟踪:

2015-07-18 02:01:17.596 testapp[1276:60b] [Error]: Caught "NSInternalInconsistencyException" with reason "Tried to save an object with a pointer to a new, unsaved object.":
(
    0   CoreFoundation                      0x2f547f9b  + 154
    1   libobjc.A.dylib                     0x39c94ccf objc_exception_throw + 38
    2   CoreFoundation                      0x2f547ec5  + 0
    3   testapp                             0x00205a29 -[PFObject(Private) resolveLocalId] + 384
    4   testapp                             0x00233d6d __32-[PFRESTCommand resolveLocalIds]_block_invoke + 24
    5   testapp …

debugging xcode objective-c stack-trace ios

8
推荐指数
1
解决办法
492
查看次数

在键入NSTextField时过滤NSTable - 自动选择第一行

我有一个NSTextView字段过滤NSTable表作为输入中的用户类型.我已经成功实现了表过滤.

现在,我的目标是自动选择第一个结果(表中的第一行),并允许用户在键入搜索查询时使用箭头键在结果之间移动.在表格中的结果之间移动时,输入字段应保持聚焦.(这与Spotlight的工作方式类似).

这就是应用程序现在的样子:

应用

这是我的ViewController:

import Cocoa

class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate, NSTextFieldDelegate {

    @IBOutlet weak var field: NSTextField!
    @IBOutlet weak var table: NSTableView!

    var projects: [Project] = []

    override func viewDidLoad() {
        super.viewDidLoad()

        projects = Project.all()

        field.delegate = self
        table.dataSource = self
        table.delegate = self
    }

    override func controlTextDidChange(_ obj: Notification) {
        let query = (obj.object as! NSTextField).stringValue

        projects = Project.all().filter { $0.title.contains(query) }

        table.reloadData()
    }

    func numberOfRows(in tableView: NSTableView) -> Int {
        return …
Run Code Online (Sandbox Code Playgroud)

macos cocoa nstextfield nstableview swift

8
推荐指数
1
解决办法
620
查看次数

如何在Swift中以编程方式创建约束?

我正在尝试UIButton使用此代码设置a的宽度:

constraintButtonPlayWidth = NSLayoutConstraint(item: buttonPlay,
        attribute: NSLayoutAttribute.Width,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Width,
        multiplier: 1,
        constant: 100)
self.view.addConstraint(constraintButtonPlayWidth)
Run Code Online (Sandbox Code Playgroud)

但按钮拉得太大了; 可能是因为toItem: self.view.我尝试修改约束的常量,但这并没有改变任何东西.

如何正确设置此约束,使其实际宽度为100?

constraints ios swift

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

Xcode 7中的超视图约束的引脚不再可用?

在Xcode 7中,不再有"pin to superview"的选项,在你Editor>Pin>Leading Space To Superview现在可以看到菜单看起来像下面的选项.在底部的引脚菜单上仍然有选项将引脚约束添加到最近的邻居,但我找不到任何方法来固定超级视图.你现在怎么去追求超级视图呢?

在此输入图像描述

xcode ios xcode7

7
推荐指数
0
解决办法
1114
查看次数

如何处理完全动态的JSON响应

也许社区中的某些人有类似的困难,并提出了一个可行的解决方案.

我们目前正在开发一个多语言键/值存储.鉴于此,我们通常不知道提前存储的内容.

考虑以下结构

struct Character : Codable, Equatable {
    let name:    String
    let age:     Int
    let gender:  Gender
    let hobbies: [String]

    static func ==(lhs: Character, rhs: Character) -> Bool {
        return (lhs.name == rhs.name
                   && lhs.age == rhs.age
                   && lhs.gender == rhs.gender
                   && lhs.hobbies == rhs.hobbies)
    }
}
Run Code Online (Sandbox Code Playgroud)

通过线路发送/接收字符实体时,一切都非常简单.用户可以向我们提供我们可以解码的类型.

但是,我们确实能够动态查询存储在后端中的实体.例如,我们可以请求'name'属性的值并返回该值.

这种活力是一个痛点.除了不知道它们是Codable之外的属性类型之外,返回的格式也可以是动态的.

以下是两个不同调用提取属性的响应示例:

{"value":"Bilbo"}
Run Code Online (Sandbox Code Playgroud)

{"value":["[Ljava.lang.Object;",["Bilbo",111]]}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,它可能相当于字典.

现在,我有以下结构来处理响应:

fileprivate struct ScalarValue<T: Decodable> : Decodable {
    var value: T?
}
Run Code Online (Sandbox Code Playgroud)

使用Character示例,传递给解码器的类型将是:

ScalarValue<Character>.self
Run Code Online (Sandbox Code Playgroud)

但是,对于单值,数组或字典情况,我有点卡住了.

我从一开始就开始:

fileprivate struct AnyDecodable: Decodable {
    init(from decoder: Decoder) …
Run Code Online (Sandbox Code Playgroud)

json swift swift4

7
推荐指数
1
解决办法
957
查看次数

private(set) 引发“self”在结构中是不可变的

我不知道是不是我太累了,但我认为还有更多。(我试了两杯咖啡,还是没能解决问题……)

我想让一个变量从外部只读,但可以通过方法写入。(所以就像在那个例子中一样,我可以确保 favoriteNumber 只是个位数。

(我不想让它成为计算属性并在 get {}, set{} 中这样做,因为在我的另一个项目中,我想根据与 set {} 的“newValue”不同的值来修改变量)

struct Person {

    var name: String
    private(set) var favoriteNumber: Int? // Should only be single-digit

    init(name: String, number: Int) {

        self.name = name

        // Make sure favorite number is single-digit
        guard number >= 0 && number < 10 else {
            self.favoriteNumber = nil
        }
        self.favoriteNumber = number
    }

    func changeFavoriteNumber(number: Int) {
        guard number >= 0 && number < 10 else { return }
        self.favoriteNumber = number
    } …
Run Code Online (Sandbox Code Playgroud)

access-control ios swift

7
推荐指数
1
解决办法
2177
查看次数

导入任何 .d.ts 都会导致运行时错误

TypeScript 中有一些简单的东西我在这里缺少......

使用 Chrome 运行我的代码,我有一个工作打字稿环境,并且所有其他代码/模块都按预期工作。

当我从 .d.ts 导入时,所有内容都会编译,没有错误/警告,但我在 Chrome 中收到运行时错误,因为生成的 JavaScript 试图从不存在的文件导入。

import { doSomething } from "exampleJsLibrary";
Run Code Online (Sandbox Code Playgroud)

在浏览器中失败,因为 TypeScript 不会将 exampleJsLibrary.d.ts 转换为 JS 文件。

我的目标是 es5,使用 es6 模块输出,并使用 tsc 来构建(没有 webpack/browserify 工具),ts 2.7.2。

完整示例:

<!DOCTYPE html>
<html>
    <head>
    <script>
            var exampleJsLibrary = (function() {
                return {
                    doSomething: function(x) { return x + 1 }
                }
            })()
    </script>
    <script type="module" src="./built/myCode.js"></script>
    </head>
    <body>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

// exampleJsLibrary.d.ts
export const doSomething(x: number): number;
export as namespace exampleJsLibrary;


// myCode.ts
import …
Run Code Online (Sandbox Code Playgroud)

typescript

7
推荐指数
1
解决办法
1810
查看次数