标签: swift

在视图控制器之间传递数据

我是iOS和Objective-C以及整个MVC范例的新手,我坚持以下内容:

我有一个视图作为数据输入表单,我想让用户选择多个产品.产品列在另一个带有a的视图中,UITableViewController我启用了多个选择.

我的问题是,如何将数据从一个视图传输到另一个视图?我将UITableView在数组中保留选择,但是如何将其传递回上一个数据输入表单视图,以便在提交表单时将其与其他数据一起保存到Core Data?

我已经四处浏览并看到一些人在app delegate中声明了一个数组.我读了一些关于单身人士的事情,但不明白这些是什么,我读了一些关于创建数据模型的内容.

执行此操作的正确方法是什么?我将如何进行此操作?

model-view-controller objective-c uiviewcontroller ios swift

1340
推荐指数
34
解决办法
44万
查看次数

如何从Swift调用Objective-C代码

在Apple的新Swift语言中,如何调用Objective-C代码?

Apple提到它们可以在一个应用程序中共存,但这是否意味着可以在技术上重用Objective-C中的旧类,同时在Swift中构建新类?

推理

Objective-C是一种独立于平台的语言,而Swift则依赖于平台.因此,在Swift中编写非平台相关代码(业务逻辑库)并不明智.但是,在其中编写与平台相关的代码(例如,与接口相关)将非常好.不是说这是一个好主意,但它肯定是一种兴趣.

objective-c swift

936
推荐指数
13
解决办法
27万
查看次数

Swift Beta性能:排序数组

我在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)

sorting performance compiler-optimization swift xcode6

914
推荐指数
9
解决办法
11万
查看次数

Swift中的#pragma mark?

在Objective C中,我可以用来#pragma mark在符号导航器中标记我的代码部分.由于这是一个C预处理器命令,因此在Swift中不可用.在Swift中是否有替代,或者我是否必须使用丑陋的评论?

swift

912
推荐指数
17
解决办法
21万
查看次数

获取String的长度

你怎么得到一个长度String?例如,我有一个变量定义如下:

var test1: String = "Scott"
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法在字符串上找到长度方法.

string swift

765
推荐指数
18
解决办法
45万
查看次数

swift for循环:对于索引,数组中的元素?

是否有一个函数,我可以用来迭代一个数组并同时具有索引和元素,如python的枚举?

for index, element in enumerate(list):
    ...
Run Code Online (Sandbox Code Playgroud)

arrays swift

737
推荐指数
17
解决办法
40万
查看次数

用Swift语言替换#ifdef

在C/C++/Objective-C中,您可以使用编译器预处理器定义宏.此外,您可以使用编译器预处理器包含/排除代码的某些部分.

#ifdef DEBUG
    // Debug-only code
#endif
Run Code Online (Sandbox Code Playgroud)

Swift中有类似的解决方案吗?

xcode preprocessor preprocessor-directive swift

697
推荐指数
15
解决办法
23万
查看次数

iOS 8 UITableView分隔符插入0不起作用

我有一个应用程序,其中UITableView的分隔符插入设置为自定义值 - 右0,左0.这完美地工作iOS 7.x,但在iOS 8.0我看到分隔符插入设置为15右侧的默认值.即使在它设置的xib文件中0,它仍然显示不正确.

如何删除UITableViewCell分隔符边距?

objective-c uitableview ios swift ios8

656
推荐指数
23
解决办法
18万
查看次数

在Swift中将String拆分为数组?

说我在这里有一个字符串:

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)

此外,有时用户可能没有姓氏.

arrays string split ios swift

653
推荐指数
23
解决办法
49万
查看次数

Swift中的@selector()?

我正在尝试创建一个NSTimerin 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())

但没有任何作用,我在参考文献中找不到解决方案.

selector nstimer swift

647
推荐指数
14
解决办法
30万
查看次数