小编Den*_*er9的帖子

什么是Swift的异常堆栈中的死亡和爆炸?

在运行时崩溃的异常堆栈中,Swift经常说参数是Dead或Exploded.它的含义是什么,是否对调试有用?

例如:

-> 0x100209cf0 <function signature specialization <Arg[0] = Exploded, Arg[1] = Exploded, Arg[2] = Dead, Arg[3] = Dead> of Swift._fatalErrorMessage (Swift.StaticString, Swift.StaticString, Swift.StaticString, Swift.UInt) -> ()+44>: brk    #0x1
Run Code Online (Sandbox Code Playgroud)

谢谢.

error-handling xcode stack-trace ios swift

41
推荐指数
1
解决办法
5364
查看次数

如何在self.view属性上设置lldb观察点?

我想跟踪什么东西改变了self.view的大小.什么是正确的格式?

(lldb) po self.view
(UIView *) $1 = 0x0a8aba20 <UIView: 0xa8aba20; frame = (0 0; 480 864); autoresize = W+TM+BM; layer = <CALayer: 0xa8aba50>>
(lldb) watch set variable self.view.frame.size.width
error: "self" is a pointer and . was used to attempt to access "view". Did you mean "self->view.frame.size.width"?
(lldb) watch set variable self->view
error: "view" is not a member of "(PlayViewController *) self"
(lldb) watch set variable self->view.frame.size.width
error: "view" is not a member of "(PlayViewController *) self"
Run Code Online (Sandbox Code Playgroud)

我已经尝试了文档和其他lldb观察点问题,但找不到任何针对此特定情况的内容.

谢谢你的帮助.

iphone xcode objective-c ios lldb

19
推荐指数
1
解决办法
6376
查看次数

在Objective-C中舍入到(1,2或5)x 10 ^ n?

是否有一种简单的方法可以将值舍入到最接近的值(1,2或5)x 10 ^ n,其中n是整数?如{...,.05 .1,.2,.5,1,2,5,10,20,50,100 ......}之一

谢谢.

c iphone math objective-c ios

13
推荐指数
2
解决办法
1118
查看次数

iPhone:哪种技术对于更快的蓝牙更有用?

我正在使用GameKit将点对点蓝牙添加到iPhone射击游戏中,因此速度至关重要.我每秒发送大约40条消息,其中大多数都使用更快的GKSendDataUnreliable,所有消息都使用NSCoding进行序列化.在3G和3GS之间的测试中,这比我想要的速度慢了很多.我想知道我应该集中精力加快速度.

GKSendDataReliable慢多少?对于必须到达那里的少数数据包,发送GKSendDataUnreliable并让对等方发送确认以便我可以再次发送,如果我没有得到Ack,比如100ms,那么它会更快吗?

使用常规C数组创建NSData实例而不是使用NSCoding协议进行存档会更快多少?这个序列化过程(对于大约十几个浮点数)是否与对象创建/释放开销一样慢,或者发生特别缓慢的事情?

我听说(例如)发送四个单独的数据集比发送四倍大小的数据要快得多.我是否会通过发送单独的数据包来实现显着的节省,这些数据包在同一时间发生时并不总是在同一个数据包中聚集在一起?

我错过了还有其他蓝牙性能机密吗?

谢谢你的帮助.

iphone performance cocoa-touch bluetooth objective-c

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

将localizable.strings转换为电子表格?

有没有一种标准方法可以将localizable.strings文件转换为csv格式,或者是否可以通过电子表格程序(如OpenOffice)导入?谢谢.

iphone xcode localization internationalization

9
推荐指数
2
解决办法
7019
查看次数

truncatingRemainder vs Swift中的余数

Swift替换浮点数的%符号:


func truncatingRemainder(dividingBy other: Self) -> Self 
Run Code Online (Sandbox Code Playgroud)

使用截断除法返回此值的余数除以给定值.


func remainder(dividingBy other: Self) -> Self 
Run Code Online (Sandbox Code Playgroud)

返回此值的余数除以给定值.


文件似乎并不十分清楚.它们之间的实际区别是什么,何时应该优先使用哪一个?谢谢.

swift

8
推荐指数
2
解决办法
4551
查看次数

UITextField - iPad上的UIKeyboardTypeDecimalPad?

在iPad上......

textField.keyboardType = UIKeyboardTypeDecimalPad;
Run Code Online (Sandbox Code Playgroud)

...只显示常规键盘,但从顶部的数字开始(下面有很多标点符号).

但是输入一个数字.我只希望用户能够输入数字和小数点,就像iPhone上的UIKeyboardTypeDecimalPad一样.

有没有办法让不相关的密钥消失并让我的用户独自一人?

keyboard objective-c ipad ios

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

为什么Xcode的Variables View的"编辑值"没有改变变量值?

在Xcode的变量视图中,在调试区域的右侧,当应用程序在断点处运行并暂停时,您可以右键单击变量并选择"编辑值".

对于一个快速的字符串,它是灰色的,我可以想象为什么会出现这种情况.但是即使对于一个简单的int,它也会弹出一个编辑框来输入一个新值,但是在点击之后它会保持旧值.即使对于在代码期间更改的var也是如此.

更新:如下面的Jim的答案所示,您应该能够使用lldb表达式命令设置值,但是,尽管Xcode会告诉您它已经更改,但它实际上无法更改值.

这有没有破坏,或者你需要做些什么来让它起作用?谢谢.

截图

更新:这是一个编译错误 - 请参阅Jim的评论.这是一个解决方法......

    println("Before lldb change, foo is \(foo)")
    //make compiler think foo may change, so I can change it myself at the console
    if count("abcd") == 0 { foo = 0 }
    println("After lldb change, code now thinks foo is \(foo)")
Run Code Online (Sandbox Code Playgroud)

iphone variables debugging xcode ios

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

Scenekit:SCNNode八叉树/四叉树与根级别的所有性能

为了在SceneKit游戏中表示地形,我在层次结构中构造了大约20k个SCNNode,类似于八叉树或四叉树.这棵树不平衡 - 有些分支比其他分支有更好的(*n) - 格兰德.

对于物理,渲染,添加/删除节点等而言,SceneKit花费多少时间来获取单个SCNNode,而不是它们在根级别都是平坦的?为了迭代或执行随机访问,它是否需要做很多额外的工作来遍历树的整个高度,还是只是不是一个重要的开销?(也许它足够聪明,可以提前自己构建节点?)

我不是在问理图形引擎理论上如何处理这个问题.我问的是SceneKit究竟做了什么.

编辑:以防它让人们回答这个问题......我不需要确切的数字表明SceneKit花了多少时间,显然这依赖于设备依赖.我只是想知道它是否是一个很大比例的时间.有没有人有尝试这两种方法和比较的经验,或者从一个方法转换到另一个方面并注意到是否存在显着差异?

谢谢你的帮助.

3d ios scenekit

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

当属性为零时,Core Data谓词崩溃

tl; dr:在这里键入一些如果birthDate为nil则不会崩溃:

xcdatamodel截图


我有一个具有birthDate属性的实体和带有以下谓词的fetched属性,直接键入xcdatamodel文件:

$FETCH_SOURCE.birthDate > birthDate
Run Code Online (Sandbox Code Playgroud)

这很快就会返回一个早于FETCH_SOURCE(发生获取请求的托管对象)的托管对象列表.但birthDate是可选的,如果FETCH_SOURCE的birthDate为零...

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'can't use NULL on left hand side'
Run Code Online (Sandbox Code Playgroud)

请注意,如果要比较的对象的属性为nil,则可以.如果我交换谓词的参数:

birthDate < $FETCH_SOURCE.birthDate
Run Code Online (Sandbox Code Playgroud)

...我犯了同样的错误.试图测试它为零:

(birthDate != nil AND birthDate < $FETCH_SOURCE.birthDate)
Run Code Online (Sandbox Code Playgroud)

...给...

'NSInvalidArgumentException', reason: 'illegal comparison with NULL'
Run Code Online (Sandbox Code Playgroud)

谷歌没有听说过这些错误,所以我认为这是最近的事态.当它被比较为等价或其他什么时,问题仍然存在.有没有办法在谓词中修复它,所以它正确返回一个空列表?谢谢.

编辑:要清楚,问题是是否可以在xcdatamodel文件的谓词中修复此崩溃.

更新:当通过尝试读取有关它的任何内容触发NSFetchedPropertyDescription的关系错误时,特别会发生崩溃,可能是因为它在此之前不会尝试运行谓词.但它不是零,可以检查零而不会崩溃.

core-data nspredicate ios swift ios8

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