Po prostu próbuje dowiedzieć się, jaka jest najlepsza praktyka: podczas korzystania z metody, która ma (NSError**)
, czy lepiej wysłać go nil
lub NULL
?"błąd: NULL" lub "error: zero"?
Na przykład
NSArray *items = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL];
W dokumentacji jest napisane „Można podać zero dla tego parametru, jeśli nie chcesz, aby informacje o błędzie.” Z drugiej strony, ponieważ jest to podwójny wskaźnik, NULL również wydaje się mieć sens?
Różnią się one w swoich typach. Wszystkie są zerowe, ale "NULL" jest pustą *, "nil" jest identyfikatorem, a "Nil" jest wskaźnikiem klasy. http://stackoverflow.com/questions/1564410/when-to-use-nil-and-null-in-objective-c – ARC
Yup; dzięki za link. I dlatego w tym przypadku powinno być NULL, ponieważ zero/zero ani nie oznaczają wskaźników do wskaźników do typów; skończyłoby się na czymś w rodzaju czegoś (void * id *) lub jakiegoś takiego bzdurnego nonsensu. – bbum
Dzięki chłopaki. Martwię się, że jeśli 'NULL' w jakiś sposób zostanie usunięty z procesu, czy nie spowoduje problemów? Zgodnie z tym postem [http://stackoverflow.com/questions/3581544/exception-codes-kern-protection-failure-at-0x00000000-error], 'nil' wydaje się być bezpieczniejszym wyborem? –