0

我使用下面的代码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

4

3 回答 3

2

在您的情况下,您可以使用其中一种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 的Assertions and Logging Programming Guide

于 2011-07-29T08:12:09.777 回答
1

将其替换为

NSAssert (retval != nil, ([NSString stringWithFormat:@"Couldn't find prop %@", prop]));
于 2011-07-29T08:15:40.527 回答
0

如果您认为它认为您正在提供三个参数,请使用:

NSAssert (retval != nil, [NSString stringWithFormat:@"Couldn't find prop %@", prop]);
于 2011-07-29T07:55:09.060 回答