Хранение дополнительного NSNumber в Базовых Данных

Я не совсем уверен, что вы пытаетесь сделать, но я предполагаю, что вы хотите использовать хеш-теги для контроля загрузки страниц, таких как Twitter и Facebook.

Если это так, проверьте этот пост: https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin

Редактировать:

Вот что было предложено на этом посту:

Лично я бы предложил пойти с jQuery BBQ Бена Алмана, так как он кросс-браузерный и очень простой в использовании. В основном:

$(window).bind('hashchange', function(e) {
    // Get the hash (fragment) as a string, with any leading # removed. Note that
    // in jQuery 1.4, you should use e.fragment instead of $.param.fragment().
    var url = $.param.fragment();
});

Источник: http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/

Еще один популярный это Sammy.js ( http://code.quirkey.com/sammy/ ), на самом деле это то, что использует Твиттер.

  • Христианские

7
задан mmc 27 July 2009 в 18:31
поделиться

3 ответа

Если вы получаете обратно большое значение, которое выглядит как указатель, возможно, это NaN (а не число)?

Если да, вы можете проверить с помощью:

 isnan([[self numberAttribute] doubleValue])

Или, возможно, это какая-то другая константа в духе NSNotFound (хотя, вероятно, более специфичная для Core Data).

0
ответ дан 7 December 2019 в 12:24
поделиться

Согласно документации ,

Вы можете указать, что атрибут является необязательным, то есть не обязательно иметь значение. В целом, однако, вам не рекомендуется делать это, особенно для числовых значений (обычно вы можете получить лучшие результаты, используя обязательный атрибут со значением по умолчанию - в модели - 0). Причина этого в том, что SQL имеет особое поведение сравнения для NULL, которое отличается от nil в Objective-C. NULL в базе данных не то же самое, что 0, и поиск 0 не будет соответствовать столбцам с NULL.

false == (NULL == 0)
false == (NULL != 0)

Более того, NULL в базе данных не эквивалентен пустой строке или пустому двоичному объекту данных, либо:

false == (NULL == @"")
false == (NULL != @"")

Итак, попробуйте тест с NULL, который не равен нулю. А еще лучше установить значение по умолчанию и изменить атрибут, чтобы он не был необязательным. Вот что я сделал в своих моделях, См. Мой комментарий выше. Я попытался создать новый управляемый объект с неустановленным необязательным атрибутом, и он был равен нулю.

BOOL isNil = ([newManagedObject numberAttribute] == nil);  //equals YES

Другое изменение: Я вернулся к этому позже и проверил объект, загруженный из кеша в отладчике (gdb - ваш друг!). Он пытался получить доступ к ячейке памяти 0x0, которая имеет значение NULL.

5
ответ дан 7 December 2019 в 12:24
поделиться

Если это похоже на указатель, это может быть указатель на экземпляр NSNumber . Убедитесь, что у вас нет несоответствия между основной моделью данных и классом (например, NSInteger , где ожидается NSNumber * ).

Если у вас есть скаляр в вашем классе, вы нужно отметить, что вы в setNilValueForKey: .

0
ответ дан 7 December 2019 в 12:24
поделиться