我一直看到有人说异常很慢,但我从来没有看到任何证据.因此,我不会询问它们是否存在,而是会询问异常是如何在场景背后起作用的,因此我可以决定何时使用它们以及它们是否很慢.
据我所知,异常与做一堆返回是一回事,但它也会检查何时需要停止返回.它如何检查何时停止?我正在猜测并说有一个第二个堆栈,其中包含异常类型和堆栈位置然后返回直到它到达那里.我也猜测堆栈触摸的唯一时间是抛出和每次尝试/捕获.使用返回代码实现类似行为的AFAICT将花费相同的时间.但这都是猜测,所以我想知道.
例外如何真正起作用?
当我需要更改指针的原始内存地址时,我会使用这样的代码编写代码.
例:
static void get_line_func(struct data_s *data,
char **begin)
{
data->slot_number = strsep(&(*(begin)), "/");
data->protocol = *begin;
strsep(&(*begin), ">");
data->service_name = strsep(&(*begin), "\n");
}
Run Code Online (Sandbox Code Playgroud)
我的意思是,不是&(*foo) == foo吗?
我正在使用 XCode 11.4 从 XCode 具有的模板创建一个简单的“单视图应用程序”。然后,我构建应用程序并在真实设备 iOS 6s 版本 13.4.1 上运行它。第一次,它按预期运行。它仅显示黑屏。
如果我在设备上设置它:
设置 > 日期和时间,关闭自动设置,将日期更改为 2034 年 1 月 6 日,杀死“单视图应用程序”,再次启动,
它只会在屏幕上闪烁。
即使我将时间设置回原来的时间,也只有重新安装应用程序才能恢复。
我无法获取堆栈跟踪,因为当日期在将来时我无法再次运行应用程序,我收到以下消息:
找不到此可执行文件的有效配置文件。
当调试器仅闪烁(立即终止)应用程序时,我无法附加调试器。
我为此使用付费帐户。
以下是导致崩溃的日期和时间配置:
c ×1
c++ ×1
exception ×1
ios ×1
objective-c ×1
performance ×1
pointers ×1
swift ×1
throw ×1
try-catch ×1