我试图动画我视角的四舍五入.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秒钟.
如何使用Objective-C将HTTP请求发送到Web服务?我需要从我的MySQL数据库中获取一些数据,所以我需要发送请求以便我可以获取数据.
我在使用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?
我正在使用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 … 我有一个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) 我正在尝试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?
在Xcode 7中,不再有"pin to superview"的选项,在你Editor>Pin>Leading Space To Superview现在可以看到菜单看起来像下面的选项.在底部的引脚菜单上仍然有选项将引脚约束添加到最近的邻居,但我找不到任何方法来固定超级视图.你现在怎么去追求超级视图呢?
也许社区中的某些人有类似的困难,并提出了一个可行的解决方案.
我们目前正在开发一个多语言键/值存储.鉴于此,我们通常不知道提前存储的内容.
考虑以下结构
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) 我不知道是不是我太累了,但我认为还有更多。(我试了两杯咖啡,还是没能解决问题……)
我想让一个变量从外部只读,但可以通过方法写入。(所以就像在那个例子中一样,我可以确保 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) 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) ios ×7
swift ×5
objective-c ×2
xcode ×2
animation ×1
catransition ×1
cocoa ×1
constraints ×1
debugging ×1
http ×1
iphone ×1
json ×1
macos ×1
nstableview ×1
nstextfield ×1
stack-trace ×1
swift4 ×1
typescript ×1
xcode7 ×1