Существует несколько способов совместного использования данных.
NSUserDefaults
. Задайте значение, которое вы хотите использовать, по отношению к выбранному вами ключу, и получите значение из NSUserDefault
, связанное с этим ключом в следующем контроллере представления. [[NSUserDefaults standardUserDefaults] setValue:value forKey:key]
[[NSUserDefaults standardUserDefaults] objectForKey:key]
viewcontrollerA
. Создайте объект viewcontrollerA
в viewcontrollerB
и назначьте это значение этому свойству. Вот что делает ваш код:
main->doit()->Fork()->Fork()->printf()->return->printf()->exit()
| |
| ----->printf()->return->printf()->exit()
|
----->Fork()->printf()->return->printf()->exit()
|
----->printf()->return->printf()->exit()
Как вы можете видеть, у вас есть в общей сложности 8 вызовов printf()
.
Было бы проще для вы увидите, что происходит, если вы решили печатать различные строки в своих функциях main
и doit
.
Установка точки останова при каждом вызове printf()
- еще одна эффективная стратегия для определения этих типов проблемы.
Вы создаете процесс # 1. Прежде чем печатать что-либо, процесс №1 вызывает fork()
и генерирует клон, который мы будем называть процессом №2. Оба процесса # 1 и # 2 снова вызывают fork()
, клонируя в процессы # 3 и # 4. Теперь у вас есть 4 процесса, и каждый из них дважды печатает hello
. Сколько hello
напечатано?
Сначала вы вызываете fork, и ваш один процесс вилки на два. Затем вы вызываете fork в каждом результирующем процессе, и у вас всего 4. Затем 4 процесса снова печатают привет, возвращают и снова печатают привет, в общей сложности 8 hellos.