NSAssert необъявленного первого использования, почему? - PullRequest
0 голосов
/ 29 июля 2011

Я использовал приведенный ниже код в levelManager.m для чтения значений из plist, но когда я делаю архив для загрузки в itunes (AppStore), я получаю сообщение об ошибке. почему?

код:

- (float)floatForProp:(NSString *)prop {
NSNumber * retval = (NSNumber *) [_curStage objectForKey:prop];
NSAssert (retval != nil, @"Couldn't find prop %@", prop);
return retval.floatValue;
}

ошибка:

NSAssert необъявленное первое использование

Заметьте, я заметил, что xcode думает, что я даю параметры NSAssert 3 вместо 2

Ответы [ 3 ]

2 голосов
/ 29 июля 2011

Вы можете использовать один из вариантов NSAssert, в вашем случае NSAssert1:

#define NSAssert1(condition, desc, arg1)

Итак:

#import <Foundation/Foundation.h>

- (float)floatForProp:(NSString *)prop
{
  NSNumber * retval = (NSNumber *) [_curStage objectForKey:prop];
  NSAssert1 (retval != nil, @"Couldn't find prop %@", prop);
  return retval.floatValue;
}

Связанные сообщения , представляющие интерес, и Apple Руководство по программированию утверждений и журналирования .

1 голос
/ 29 июля 2011

Замените его на

NSAssert (retval != nil, ([NSString stringWithFormat:@"Couldn't find prop %@", prop]));
0 голосов
/ 29 июля 2011

Если вы думаете, что вы даете три параметра, используйте это:

NSAssert (retval != nil, [NSString stringWithFormat:@"Couldn't find prop %@", prop]);
...