小编Vat*_*not的帖子

我的变量存储在哪里?(迅速)

我对Swift的一个小实验:

func store<T>(var x: T) -> (getter: (Void -> T), setter: (T -> Void)) {
    return ({ x }, { x = $0 })
}
Run Code Online (Sandbox Code Playgroud)

x 是一种值类型.

我的问题是:

  • 准确x存储的位置(就堆栈/堆而言)?
  • x像这样存储的陷阱是什么?(我已经阅读了很多关于堆栈和堆的论据,我出乎意料地想要了解更多它们!)
  • 这样安全吗?
  • 何时x被摧毁(如果有的话)?

memory heap stack swift

10
推荐指数
1
解决办法
1912
查看次数

如何恢复索引功能?(Xcode中)

我的一个项目(纯Swift中包含200多个文件)刚刚开始干扰索引过程.索引过程中途冻结,然后突然停止,导致SourceKitService崩溃.

我根本找不到错误的代码; 因为似乎没有!

我的代码编译得很好(没有一个警告!) - 但它无法编入索引.最初,我认为这是一个Xcode 7.2问题,因此升级到最新的测试版(7.3); 但问题仍然存在.我无法恢复到我的旧代码,因为太多的工作将被撤消,我无法发现特定文件的责任.崩溃报告就在这里.

为了澄清,Xcode本身并没有崩溃,只有索引过程(以及SourceKitService结果).

关于如何解决这个问题的任何想法?

xcode sourcekit swift

10
推荐指数
1
解决办法
461
查看次数

Xcode 5.1和模拟器使用错误

我注意到,自升级到Xcode 5.1后,在尝试构建/运行时会随机弹出"正在使用的模拟器"错误.有时没有任何事情发生,有时我得到错误.

即使没有应用程序正在运行,或者模拟器根本没有运行,我仍然会遇到错误,该错误一直持续到我重新启动Xcode.

我怎样才能解决这个问题?

在此输入图像描述

xcode ios-simulator xcode5

9
推荐指数
1
解决办法
3730
查看次数

如何阻止不需要的Swift标准库与我的项目一起提供?

我启动了一个Xcode项目(iOS应用程序)作为混合的Objective-C和Swift项目,但现在我已经确定我需要的只是Objective-C.如何将其转换回常规的Objective-C项目?

我删除了所有swift代码和桥接头,但状态栏在启动应用程序时仍显示"复制Swift标准库".我不希望我的应用程序中有额外的东西我不需要.提前致谢.

iphone xcode ios swift

9
推荐指数
1
解决办法
1389
查看次数

我可以将iOS 8扩展的应用程序部署到运行iOS 7的设备吗?

我正在swift中创建一个具有Notification Center小部件的iOS应用程序.

但是,我希望该应用程序能够在iOS 7上运行.如果我有小部件,我可以在iOS 7上运行应用程序(使用主应用程序,但不能运行小部件)或者我是否必须创建没有小部件的iOS 7版本?

xcode ios7 swift ios8 ios-app-extension

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

"错误:未找到底层Objective-C模块<module>"

随着iOS 8和Xcode 6的发布,现在可以构建动态iOS框架.苹果似乎没有记录这个话题,让开发人员自己去抵御Xcode的致命,神秘的错误,一个特别讨厌:

"error: underlying Objective-C module <module> not found"
Run Code Online (Sandbox Code Playgroud)

frameworks module dynamic ios swift

7
推荐指数
2
解决办法
5334
查看次数

如何从 UnsafeBufferPointer 创建数组而不进行复制?

我处于一个棘手的情况,我有一个由 表示的非常大的内存UnsafeBufferPointer,并且我需要将其表示为Array。现在,Swift 标准库提供了一个初始化程序,可以从任何给定序列中复制元素,但它无法直接提供底层存储。

有什么方法可以将 an '投射'UnsafeBufferPointer到 anArray同时避免复制吗?

memory arrays buffer swift swift2

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

dispatch_set_target_queue如何工作?

由于缺乏材料dispatch_set_target_queue,我来这里寻求帮助,谢谢!

这是我的测试代码:

dispatch_queue_t mySerialDispatchQueue1 = dispatch_queue_create("come.itenyh", NULL);
dispatch_queue_t mySerialDispatchQueue2 = dispatch_queue_create("come.itenyh1", NULL);

dispatch_set_target_queue(mySerialDispatchQueue1, mySerialDispatchQueue2);

dispatch_async(mySerialDispatchQueue1, ^{[self task:@"s1"];});

dispatch_async(mySerialDispatchQueue2, ^{[self task:@"p1"];});

dispatch_async(mySerialDispatchQueue1, ^{[self task:@"s2"];});

- (void)task:(NSString *)taskid
{

        NSLog(@"Now executing taskid:%@", taskid);

        [NSThread sleepForTimeInterval:5];

}
Run Code Online (Sandbox Code Playgroud)

现在,如果我设置

 dispatch_set_target_queue(mySerialDispatchQueue2, mySerialDispatchQueue1);
Run Code Online (Sandbox Code Playgroud)

然后结果是:

2014-04-16 22:23:49.581 ITGCDLearning[66758:1303] Now executing taskid:s1
2014-04-16 22:23:54.585 ITGCDLearning[66758:1303] Now executing taskid:s2
2014-04-16 22:23:59.586 ITGCDLearning[66758:1303] Now executing taskid:p1
Run Code Online (Sandbox Code Playgroud)

而相反,如果我设定

dispatch_set_target_queue(mySerialDispatchQueue1, mySerialDispatchQueue2);
Run Code Online (Sandbox Code Playgroud)

然后结果是:

2014-04-16 22:28:37.910 ITGCDLearning[66795:1303] Now executing taskid:s1
2014-04-16 22:28:42.913 ITGCDLearning[66795:1303] Now executing taskid:p1
2014-04-16 22:28:47.915 ITGCDLearning[66795:1303] Now executing taskid:s2 …
Run Code Online (Sandbox Code Playgroud)

objective-c grand-central-dispatch ios

6
推荐指数
1
解决办法
2499
查看次数

如何分发预编译的动态 iOS 框架?

我有一个专有的动态 iOS 框架,目标是 iOS 8.0 以上并使用 Swift。我想以预编译的形式分发它。

我尝试为发布而构建,将框架复制到另一个项目并将其添加到嵌入式框架部分下。但是,我收到以下错误:

ld: framework not found MyFramework

如果我从链接的框架和库部分删除我的框架,我的应用程序会编译,但我无法在我的代码中使用该框架。

我该如何解决我的问题?

xcode frameworks dynamic ios swift

5
推荐指数
0
解决办法
490
查看次数

致命错误:高代理代理点和低代理代码点不是有效的Unicode标量值

有时,UnicodeScalar使用类似值初始化会57292产生以下错误:

fatal error: high- and low-surrogate code points are not valid Unicode scalar values
Run Code Online (Sandbox Code Playgroud)

这个错误是什么,它为什么会发生,以后如何防止它?

string unicode utf-16 utf swift

5
推荐指数
1
解决办法
359
查看次数