我是iOS和Objective-C以及整个MVC范例的新手,我坚持以下内容:
我有一个视图作为数据输入表单,我想让用户选择多个产品.产品列在另一个带有a的视图中,UITableViewController
我启用了多个选择.
我的问题是,如何将数据从一个视图传输到另一个视图?我将UITableView
在数组中保留选择,但是如何将其传递回上一个数据输入表单视图,以便在提交表单时将其与其他数据一起保存到Core Data?
我已经四处浏览并看到一些人在app delegate中声明了一个数组.我读了一些关于单身人士的事情,但不明白这些是什么,我读了一些关于创建数据模型的内容.
执行此操作的正确方法是什么?我将如何进行此操作?
model-view-controller objective-c uiviewcontroller ios swift
Apple提到它们可以在一个应用程序中共存,但这是否意味着可以在技术上重用Objective-C中的旧类,同时在Swift中构建新类?
Objective-C是一种独立于平台的语言,而Swift则依赖于平台.因此,在Swift中编写非平台相关代码(业务逻辑库)并不明智.但是,在其中编写与平台相关的代码(例如,与接口相关)将非常好.不是说这是一个好主意,但它肯定是一种兴趣.
我在Swift Beta中实现了一个算法,并注意到性能非常差.在深入挖掘之后,我意识到其中一个瓶颈就像排序数组一样简单.相关部分在这里:
let n = 1000000
var x = [Int](repeating: 0, count: n)
for i in 0..<n {
x[i] = random()
}
// start clock here
let y = sort(x)
// stop clock here
Run Code Online (Sandbox Code Playgroud)
在C++中,类似的操作在我的计算机上需要0.06秒.
在Python中,它需要0.6秒(没有技巧,只有y =排序(x)表示整数列表).
在Swift中,如果我使用以下命令编译它需要6秒:
xcrun swift -O3 -sdk `xcrun --show-sdk-path --sdk macosx`
Run Code Online (Sandbox Code Playgroud)
如果我使用以下命令编译它需要多达88秒:
xcrun swift -O0 -sdk `xcrun --show-sdk-path --sdk macosx`
Run Code Online (Sandbox Code Playgroud)
Xcode中使用"Release"与"Debug"构建的计时相似.
这有什么不对?与C++相比,我可以理解一些性能损失,但与纯Python相比,速度没有降低10倍.
编辑:天气注意到,改变-O3
以-Ofast
使这个代码的运行几乎一样快如C++版本!但是,-Ofast
更改了语言的语义 - 在我的测试中,它禁用了对整数溢出和数组索引溢出的检查.例如,使用-Ofast
以下Swift代码以静默方式运行而不会崩溃(并打印出一些垃圾):
let …
Run Code Online (Sandbox Code Playgroud) 在Objective C中,我可以用来#pragma mark
在符号导航器中标记我的代码部分.由于这是一个C预处理器命令,因此在Swift中不可用.在Swift中是否有替代,或者我是否必须使用丑陋的评论?
你怎么得到一个长度String
?例如,我有一个变量定义如下:
var test1: String = "Scott"
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法在字符串上找到长度方法.
是否有一个函数,我可以用来迭代一个数组并同时具有索引和元素,如python的枚举?
for index, element in enumerate(list):
...
Run Code Online (Sandbox Code Playgroud) 在C/C++/Objective-C中,您可以使用编译器预处理器定义宏.此外,您可以使用编译器预处理器包含/排除代码的某些部分.
#ifdef DEBUG
// Debug-only code
#endif
Run Code Online (Sandbox Code Playgroud)
Swift中有类似的解决方案吗?
我有一个应用程序,其中UITableView
的分隔符插入设置为自定义值 - 右0
,左0
.这完美地工作iOS 7.x
,但在iOS 8.0
我看到分隔符插入设置为15
右侧的默认值.即使在它设置的xib文件中0
,它仍然显示不正确.
如何删除UITableViewCell
分隔符边距?
说我在这里有一个字符串:
var fullName: String = "First Last"
Run Code Online (Sandbox Code Playgroud)
我想在白色空间上拆分字符串,并将值分配给它们各自的变量
var fullNameArr = // something like: fullName.explode(" ")
var firstName: String = fullNameArr[0]
var lastName: String? = fullnameArr[1]
Run Code Online (Sandbox Code Playgroud)
此外,有时用户可能没有姓氏.
我正在尝试创建一个NSTimer
in Swift
但我遇到了一些麻烦.
NSTimer(timeInterval: 1, target: self, selector: test(), userInfo: nil, repeats: true)
Run Code Online (Sandbox Code Playgroud)
test()
是同一个类中的函数.
我在编辑器中收到错误:
找不到接受提供的参数的'init'的重载
当我改变selector: test()
到selector: nil
错误消失.
我试过了:
selector: test()
selector: test
selector: Selector(test())
但没有任何作用,我在参考文献中找不到解决方案.
swift ×10
ios ×3
objective-c ×3
arrays ×2
string ×2
ios8 ×1
nstimer ×1
performance ×1
preprocessor ×1
selector ×1
sorting ×1
split ×1
uitableview ×1
xcode ×1
xcode6 ×1