Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 比较两个数组时出现的问题_Iphone_Objective C_Ios - Fatal编程技术网

Iphone 比较两个数组时出现的问题

Iphone 比较两个数组时出现的问题,iphone,objective-c,ios,Iphone,Objective C,Ios,我在Objective C中有一个循环,我比较了同一数组的两个索引,但是比较不起作用,没有编译错误。变量iMinor始终为零且arrayDistancias不为空: NSMutableArray *arrayDistancias = [NSMutableArray array]; NSNumber *lat1 = [NSNumber numberWithFloat:39.0025]; NSNumber *lat2 = [NSNumber numberWithFloat:40.2710]; N

我在Objective C中有一个循环,我比较了同一数组的两个索引,但是比较不起作用,没有编译错误。变量iMinor始终为零且arrayDistancias不为空:

NSMutableArray *arrayDistancias = [NSMutableArray array];


NSNumber *lat1 = [NSNumber numberWithFloat:39.0025];
NSNumber *lat2 = [NSNumber numberWithFloat:40.2710];
NSNumber *lat3 = [NSNumber numberWithFloat:38.5316];
NSNumber *lat4 = [NSNumber numberWithFloat:27.4529];
NSNumber *lng1 = [NSNumber numberWithFloat:-1.5139];
NSNumber *lng2 = [NSNumber numberWithFloat:-3.4327];
NSNumber *lng3 = [NSNumber numberWithFloat:-7.0029];
NSNumber *lng4 = [NSNumber numberWithFloat:-15.3432];


//for (NSInteger i = 0; i < 40; i++)
[arrayDistancias addObject:[NSNumber numberWithInteger:[self calcularDistancia:latitudaqui :lat1 :longitudaqui :lng1]]];
[arrayDistancias addObject:[NSNumber numberWithInteger:[self calcularDistancia:latitudaqui :lat2 :longitudaqui :lng2]]];
[arrayDistancias addObject:[NSNumber numberWithInteger:[self calcularDistancia:latitudaqui :lat3 :longitudaqui :lng3]]];
[arrayDistancias addObject:[NSNumber numberWithInteger:[self calcularDistancia:latitudaqui :lat4 :longitudaqui :lng4]]];


int iMinor = 0;
for (int i = 0; i < [arrayDistancias count]; i++) {

        if([arrayDistancias objectAtIndex: i] < [arrayDistancias objectAtIndex: iMinor]){
            iMinor = i;
          }              


     }
NSMutableArray*arrayDistancias=[NSMutableArray];
NSNumber*lat1=[NSNumber numberWithFloat:39.0025];
NSNumber*lat2=[NSNumber numberWithFloat:40.2710];
NSNumber*lat3=[NSNumber numberWithFloat:38.5316];
NSNumber*lat4=[NSNumber numberWithFloat:27.4529];
NSNumber*lng1=[NSNumber numberWithFloat:-1.5139];
NSNumber*lng2=[NSNumber numberWithFloat:-3.4327];
NSNumber*lng3=[NSNumber NUMBER WITHFLOAT:-7.0029];
NSNumber*lng4=[NSNumber numberWithFloat:-15.3432];
//对于(NSInteger i=0;i<40;i++)
[arrayDistancias addObject:[NSNumber numberWithInteger:[自计算距离:纬度:纬度1:经度:lng1]];
[arrayDistancias addObject:[NSNumber numberWithInteger:[self calcularDistancia:Lattudaqui:lat2:Longtudaqui:lng2]];
[arrayDistancias addObject:[NSNumber numberWithInteger:[self calcularDistancia:Lattudaqui:lat3:Longtudaqui:lng3]];
[arrayDistancias addObject:[NSNumber numberWithInteger:[自计算距离:纬度:纬度4:经度:lng4]];
int iMinor=0;
对于(int i=0;i<[arrayDistancias计数];i++){
if([arrayDistancias objectAtIndex:i]<[arrayDistancias objectAtIndex:iMinor]){
iMinor=i;
}              
}

提前感谢

[arrayDistances objectAtIndex:i]
重新运行
NSNumber
对象,而不是整数值。要获取整数值,请对返回的对象使用
intValue
方法。所以,你应该这样比较

if ([[arrayDistances objectAtIndex: i] intValue] < 
   [[arrayDistances objectAtIndex: iMinor] intValue]) {
if([[arrayDistances objectAtIndex:i]intValue]<
[[arrayDistances对象索引:iMinor]intValue]){

只使用了示例float中的一个注释,因此您可以使用
floatValue
来获取float值。或者只使用
compare
方法
NSNumber
如果([[arrayDistances objectAtIndex:i]compare:[arrayDistances objectAtIndex:iMinor]==传感器解除搜索)