2010-06-08 214 views
1

我得到这个警告“格式字符串不是一个字面,没有格式参数?任何想法?无法摆脱此警告?

-(BOOL)isFirstPointReached{ 

    NSString *firstPoint = [NSString stringWithFormat:[pointsToFillArray objectAtIndex:0]]; 
    NSString *lastPoint = [NSString stringWithFormat:[pointsToFillArray lastObject]]; 

    if([firstPoint isEqualToString:lastPoint]){ 

     return YES; 
    } 

    else{ 

     return NO; 
    } 
} 
+1

您使用stringWithFormat,你怎么反倒在pointsToFillArray?你必须有一个有效的格式,如@“你的年龄是%d”,如果这不是你想要的,你应该使用initWithString。 – 2010-06-08 14:35:06

+0

pointsToFillArray = [[NSMutableArray alloc] init]; – NextRev 2010-06-08 14:41:21

+0

这个警告刚刚弹出与新的SDK,它在此之前罚款 – NextRev 2010-06-08 14:41:46

回答

4

的几点...

的pointsToFillArray是对象的数组和编译器不知道它是否包含NSString或任何其他类型的对象为了摆脱这个错误,你将它抛出(NSString *)

其次,stringWithFormat通常用于从几个不同的数据段创建一个字符串在这种情况下不需要使用

第三,你可以只创建指向数组中的对象,然后做你的支票

以下应为你工作:

NSString *firstPoint = (NSString*)[pointsToFillArray objectAtIndex:0]; 
NSString *lastPoint = (NSString*)[pointsToFillArray lastObject]; 

if ([firstPoint isEqualToString:lastPoint]) { 
    return YES; 
}