Вариант 2 неверен. Это глобальные переменные, а не переменные экземпляра.
Варианты 1 и 3 по существу идентичны. Это не имеет никакого значения.
. Выбор заключается в том, следует ли поместить переменные экземпляра в файл заголовка или файл реализации. Преимущество использования файла заголовка в том, что у вас есть быстрый и простой комбинатор клавиш (Command + Control + Up в Xcode) для просмотра и редактирования ваших переменных экземпляра и декларации интерфейса.
Недостаток заключается в том, что вы открываете частные детали вашего класса в публичном заголовке. Это нежелательно в некоторых случаях, особенно если вы пишете код для других пользователей. Другая потенциальная проблема заключается в том, что если вы используете Objective-C ++, полезно избегать размещения каких-либо типов данных C ++ в вашем файле заголовка.
Переменные экземпляра реализации являются отличным вариантом для определенных ситуаций, но для большинства моих код Я все еще помещаю переменные экземпляра в заголовок просто потому, что это удобнее для меня как кодер, работающий в Xcode. Мой совет - делать то, что вы считаете более удобным для вас.
Я только что попробовал это с более старой версией Spark (1.6.0), и она прекрасно работает, если вы предоставите отдельные пути или шаблоны подстановочных знаков как переменные для метода json
, то есть: [ 115]
sqlContext.read.json("foo/*", "bar/*")
Когда вы передаете несколько шаблонов в одной строке, Spark пытается создать из них один URI, что неверно, и он пытается URL-кодировать символы кавычек как% 22.
Кроме того, попытка создать URI не удалась, потому что ваша строка начинается с двойной кавычки, что является недопустимым символом в этой позиции (RFC 3986):
Схема имена состоят из последовательности символов, начинающихся с буквы
BLOCKQUOTE>
и сопровождаемых любой комбинацией букв, цифр, плюс
("+"), точки (".") или дефиса ( "-".)