Какао - Предложенные методы для отладки обязательных проблем между XCode и Интерфейсным Разработчиком

glewInit() должен вызываться после того, как контекст OpenGL становится актуальным, после glfwMakeContextCurrent .
Но он должен вызываться перед любой инструкцией OpenGL. См. Также Инициализация GLEW :

// [...]

/* Make the window's context current */
glfwMakeContextCurrent(window);

glewExperimental = GL_TRUE;
if (glewInit() != GLEW_OK)
    printf("Error\n");

float pos[6] = {
    -0.5f, -0.5f,
     0.0f,  0.5f,
     0.5f, -0.5f
};

GLuint buf;
glGenBuffers(1, &buf);
glBindBuffer(GL_ARRAY_BUFFER, buf);
glBufferData(GL_ARRAY_BUFFER, 6 * sizeof(float), pos, GL_STATIC_DRAW);

// [...]

Обратите внимание, что инструкции, подобные glGenBuffers, являются функциональными указателями. Эти указатели инициализированы в NULL. glewInit() присваивает адрес функции этим указателям.
Когда вы пытаетесь вызвать функцию перед инициализацией, это вызывает:

Нарушение прав доступа, местоположение выполнения 0x00000000

blockquote>

10
задан Jenn 9 August 2013 в 21:58
поделиться

5 ответов

Эта Статья говорит очень кратко об этом.

В основном это указывает, что можно посмотреть в файлах Xib для выяснения немного более быстро, какую привязку Вы установили в своем приложении.

Надежда, которая помогает!

3
ответ дан 3 December 2019 в 22:02
поделиться

Я не уверен, что существует способ получить сводку привязки и атрибутов, кроме которых у Вас есть установка в Интерфейсном Разработчике сама. Насколько я знаю, что это - единственный gui, который показывает эту информацию. Можно попытаться запустить приложение в отладчике и повредиться на исключениях (-[Повышение NSException]), чтобы видеть, можно ли, по крайней мере, разыскать, какой объект дает Вам эту ошибку, которая могла бы помочь Вам определить местоположение плохого соединения в IB.

Если бы Ваше приложение является достаточно небольшим и создает быстро, и Вы только начинаете использовать IB и привязку, я предложил бы, чтобы Вы установили одну связь и протестировали ее, чтобы видеть, работает ли она, и затем идите дальше к следующему. Тем путем Вы будете знать, какое соединение или атрибут вызывают проблемы.

Я надеюсь, что у кого-то есть лучший ответ, чем это, но насколько я знаю, что нет инструмента, чтобы проверить и точно определить проблемы соединения IB.

1
ответ дан 3 December 2019 в 22:02
поделиться

Что, если Вы делаете привязку программно вместо того, чтобы делать его в interfacebuilder?

Чтобы сделать это, необходимо использовать этот метод NSObject:

- (void)bind:(NSString *)binding toObject:(id)observableController withKeyPath:(NSString *)keyPath options:(NSDictionary *)options

0
ответ дан 3 December 2019 в 22:02
поделиться

Одна вещь, которую я не заметил сначала, состояла в том, что при рассмотрении инспектора соединений для объекта он показывает хороший список всего, что он связывается с, и если Вы нависаете над объектом, он выделяет свой соответствующий элемент.

Это хорошо для того, когда Вы связали что-то со Столбцом таблицы все снова и снова.

0
ответ дан 3 December 2019 в 22:02
поделиться

На сайте Apple's Dev Site есть замечательная статья об устранении неполадок.

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/CocoaBindings/Concepts/Troubleshooting.html

Ключ на вынос? Есть настройка под названием NSBindingDebugLogLevel, которую можно использовать для получения отладочной информации.

Два способа установки:

1 - Постоянно в настройках по умолчанию

по умолчанию пишите com.yourdomain.yourapplication NSBindingDebugLogLevel 1

2 - Передавайте его в качестве параметра при отладке

path/to/your/app -NSBindingDebugLogLevel 1

12
ответ дан 3 December 2019 в 22:02
поделиться