Что Objective C эквивалентен для “toString ()”, для использования с NSLog?

Начиная с версии 2.6, другой способ сделать это - сравнить поле с пустым массивом:

ME.find({pictures: {$gt: []}})

Тестирование его в оболочке:

> db.ME.insert([
{pictures: [1,2,3]},
{pictures: []},
{pictures: ['']},
{pictures: [0]},
{pictures: 1},
{foobar: 1}
])

> db.ME.find({pictures: {$gt: []}})
{ "_id": ObjectId("54d4d9ff96340090b6c1c4a7"), "pictures": [ 1, 2, 3 ] }
{ "_id": ObjectId("54d4d9ff96340090b6c1c4a9"), "pictures": [ "" ] }
{ "_id": ObjectId("54d4d9ff96340090b6c1c4aa"), "pictures": [ 0 ] }

Так он правильно включает документы, где pictures имеет хотя бы один элемент массива, и исключает документы, где pictures является либо пустым массивом, а не массивом, либо отсутствует.

167
задан George Armhold 9 July 2009 в 15:44
поделиться

3 ответа

Это метод экземпляра description , объявленный как:

- (NSString *)description

Вот пример реализации (благодаря grahamparks):

- (NSString *)description {
   return [NSString stringWithFormat: @"Photo: Name=%@ Author=%@", name, author];
}
247
ответ дан 23 November 2019 в 20:59
поделиться

Добавьте это в @implementation вашего класса фотографий:

- (NSString *)description {
   return [NSString stringWithFormat:@"Photo: Name=%@ Author=%@",name,author];
}
35
ответ дан 23 November 2019 в 20:59
поделиться

Вы можете переопределить метод описания NSObject:

- (NSString *)description

Что касается ведения журнала, я рекомендую эту запись в блоге для лучшего входа в Objective-C.

24
ответ дан 23 November 2019 в 20:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: