我在levelManager.m
中使用下面的代码从plist中读取值,但是当我将Archive上传到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
答案 0 :(得分: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;
}
感兴趣的相关post和Apple的Assertions and Logging Programming Guide。
答案 1 :(得分:1)
将其替换为
NSAssert (retval != nil, ([NSString stringWithFormat:@"Couldn't find prop %@", prop]));
答案 2 :(得分:0)
如果你认为你在考虑给出三个参数,请使用:
NSAssert (retval != nil, [NSString stringWithFormat:@"Couldn't find prop %@", prop]);