我有一本需要转换为 Json 的字典。
[
Dict1:1,
test: A Value,
NestedDict1:[
city: A City Name,
address: An Address,
NestedDict2: [
1: 1,
39: 2
],
favorite1: 2,
favorite3: Chocolate
]
]
Run Code Online (Sandbox Code Playgroud)
当我使用
NSJSONSerialization.dataWithJSONObject(myJsonDict, options: NSJSONWritingOptions.PrettyPrinted, error: nil)
Run Code Online (Sandbox Code Playgroud)
它只编码最外面的字典。所以我的输出看起来像这样:
NSJSONSerialization.dataWithJSONObject(myJsonDict, options: NSJSONWritingOptions.PrettyPrinted, error: nil)
Run Code Online (Sandbox Code Playgroud)
我如何对内部字典进行 JSON 处理?
我想以编程方式创建一个 UIViewController 。没有笔尖或故事板。它基本上会被创建然后呈现,并且在它自己的类中它将设置要显示的图像。
然而,每当我只是alloc init一个视图控制器并呈现它时,它呈现时就会显示为黑色。
我认为这是因为它缺乏自己的观点?
当我在 Storyboard 中创建原始文件时UIViewController,它会自动设置视图,如何设置视图,使其像 Storyboard 一样具有正确的设备大小、旋转变化等?
我正在浏览Swift JSON解析的Argo文档(https://github.com/thoughtbot/Argo),它们提供了一个简单的代码段,该代码段应该检索JSON数据,但是运行它时出现错误。片段是:
// Wherever you receive JSON data:
let json: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(0), error: nil)
if let j: AnyObject = json {
let user: User? = decode(j)
}
Run Code Online (Sandbox Code Playgroud)
和我得到的错误是“不允许在最高级别的声明”,在说如果让j ...
为什么这会导致错误?如果不起作用,为什么在他们的github自述文件中呢?
我需要一个很好的阶乘功能.我在这里写的那个完全有效,除非n太大了.这是一个计算器应用程序,我可以返回0/0的值不能被因素,因为我有一个错误检查器,将声明这是不可能的.但是,在非常大的数量上执行该功能会使应用程序崩溃.我不能使用范围运算符,因为我的类型是双精度数.
func factorial(n: Double) -> Double {
if n >= 0 {
return n == 0 ? 1 : n * self.factorial(n - 1)
} else {
return 0 / 0
}
}
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
例如,我想要白天的所有视图(背景和标签)的浅色和晚上的深色.该应用程序将根据时间自动更改其颜色.此外,用户还可以在设置中切换到其他配色方案.这样做最有效的方法是什么?
开关中涉及多种颜色(背景和标签).
我在Swift中有一个switch语句,如下所示:
switch tuple {
case (let someObject, let current, nil):
return true
// Other cases...
}
Run Code Online (Sandbox Code Playgroud)
元组的类型的(SomeObject?, SomeObject, SomeObject?),和我说的英语是:匹配其中前两个元素的情况下不为零,而第三个(可选的)是零.
Xcode的7告诉我,因为我没有使用绑定someObject和current,我应该用下划线代替它.但是如果我用下划线替换元组中的第一个元素,它是否也会匹配第一个元素为nil的情况,因为这_意味着编译器会忽略该值?对于第一个元素为零的情况,我有一个单独的案例.
为了记录,看起来我的代码仍然按照我的预期工作,但我想确定,我无法在任何地方找到任何文档.
我想制作一个按钮,它的底部有一个图标和一个标签,如下所示:

什么是最好的方法来做到这一点?是否可以将图像视图对象和标签拖到按钮中?
我试图理解该defer语句在Swift 2中的工作方式,因为我显然无法正确理解它。
我有一个postprocess()只应在view实例化时调用的方法:
internal func postprocess() {
assert(self.node.isViewInstantiated()) // <- this is failing using the first method
...
}
Run Code Online (Sandbox Code Playgroud)
我最初试图这样称呼它:
public var view: UIView {
get {
if !node.isViewInstantiated() {
defer {
postprocess()
}
}
return node.view // node.view getter creates view
}
}
Run Code Online (Sandbox Code Playgroud)
但这引起了断言。当我将其更改为此时,它开始工作:
public var view: UIView {
get {
if node.isViewInstantiated() {
return node.view
} else {
var result = node.view
postprocess()
return result
}
}
Run Code Online (Sandbox Code Playgroud)
(因此请注意,这node.view是自我说明isViewIntantiated()。) …
使用多任务在iPad上测试我的应用程序时,如果我更改了应用程序的大小,则需要调整集合视图单元格的大小,否则它们将不适合视图窗口。
我已经采取了一些措施,例如
一切都很好,但是当使用多任务处理或实际返回到全屏应用程序时实际更改窗口大小时,单元格大小不会改变并且看起来很不合适。直到通过切换方向或切换视图控制器强制这样做viewWillLoad或viewDidLoad再次执行。
那么,如果view.frame大小发生变化,如何设置通知?
所以我在使用Switch语句时遇到问题,当我使用它时,我会在控制台中得到这个"致命错误:范围结束索引没有有效的继承者".
var ArrayBytes : [UInt8] = [48 ,48 ,48]
var SuperArrayMensaje : Array = [[UInt8]]()
var num7BM : Array = [UInt8]()
for var Cont27 = 0; Cont27 < 800; Cont27++ {
ArrayBytesReservaSrt = String(Mensaje7BM[Cont27])
switch Mensaje7BM[Cont27] {
case 0...9 :
num7BM = Array(ArrayBytesReservaSrt.utf8)
ArrayBytes.insert(num7BM[0], atIndex: 2)
case 10...99 :
num7BM = Array(ArrayBytesReservaSrt.utf8)
ArrayBytes.insert(num7BM[0], atIndex: 1)
ArrayBytes.insert(num7BM[1], atIndex: 2)
case 100...255 : // --> THE problem is here "EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)"
num7BM = Array(ArrayBytesReservaSrt.utf8)
ArrayBytes.insert(num7BM[0], atIndex: 0)
ArrayBytes.insert(num7BM[1], atIndex: 1)
ArrayBytes.insert(num7BM[2], …Run Code Online (Sandbox Code Playgroud) swift ×6
ios ×3
json ×2
cocoa-touch ×1
dictionary ×1
factorial ×1
fatal-error ×1
ipad ×1
objective-c ×1
uibutton ×1
uikit ×1
uiview ×1