ПУСТОЙ УКАЗАТЕЛЬ по сравнению с нолем в Objective C

Проблема здесь в том, что c является переменной js, контекстная переменная c не существует, а тег url является тегом шаблона django, поэтому он ожидает переменные контекста o базовых типов, таких как str int и т. Д.

Попробуйте:

d3.json("{% url "plot_graph" column=column_json|safe %}", function(error, data) {
  data.forEach(function(d){
    d.c5 = d.c5;
});

Вы можете использовать контекстные переменные и фильтры внутри других тегов.

С другой стороны ...

Вы должны быть уверены, что у вас есть контент, который вы ожидаете в column_json, или если после применения фильтра safe есть какой-то полезный контент.

180
задан jrturton 28 December 2012 в 20:53
поделиться

3 ответа

nil должен только использоваться вместо id, о чем мы Java и программисты на C++ думали бы как указатель на объект. Используйте NULL для необъектных указателей.

Взгляд на объявление того метода:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
    change:(NSDictionary *)change context:(void *)context

Контекст void * (т.е. указатель C-стиля), таким образом, Вы определенно использовали бы NULL (который иногда объявляется, как (void *)0), а не nil (который имеет тип id).

227
ответ дан VisioN 23 November 2019 в 06:12
поделиться

Они - технически то же самое (0), но ноль обычно используется для типа объекта Objective C, в то время как ПУСТОЙ УКАЗАТЕЛЬ используется для указателей c-стиля (пусто *).

64
ответ дан Marc Charbonneau 23 November 2019 в 06:12
поделиться

Они технически одно и то же и отличаются только в стиле:

  • Стиль Objective-C говорит, что nil - это то, что следует использовать для типа id (и указателей на объекты).
  • В стиле C указано, что NULL - это то, что вы используете для void * .
  • Стиль C ++ обычно говорит, что вам следует просто использовать 0 .

Я обычно использую вариант, соответствующий языку, где тип объявлен .

53
ответ дан 23 November 2019 в 06:12
поделиться