返回NSNumbers数组作为参数
我正在尝试在两个整数之间创建一个NSNumbers
数组,包括在内。
提供了两个参数number
和otherNumber
注意:number
或otherNumber
可能是较低的数字,但字符串始终包含从最低到最高的数字。
我希望能够在两个整数之间返回一个NSNumber
数组,包括在内。
我没有得到程序运行的任何编译错误,但是,它没有通过单元测试。我错过了什么吗?非常感谢您的帮助!
- (NSArray *) arrayOfNumbersBetweenNumber:(NSInteger)number andOtherNumber: (NSInteger)otherNumber {
NSNumber *newNumber = [NSNumber numberWithInteger:number];
NSNumber *otherNewNumber = [NSNumber numberWithInteger:otherNumber];
NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:newNumber, otherNewNumber, nil];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES];
[mutableArray sortUsingDescriptors:@[sortDescriptor]];
NSArray *myArray = [mutableArray copy];
return myArray;
答案 0 :(得分:0)
目标-C
- (NSArray *)arrayOfNumbersBetweenNumber:(NSInteger)number andOtherNumber:(NSInteger)otherNumber {
NSMutableArray *mutableRange = [NSMutableArray new];
for (NSInteger i = number; i <= otherNumber; i++) {
[mutableRange addObject:@(i)];
}
return [mutableRange copy];
}
答案 1 :(得分:-1)
您只是向数组中添加两个数字,即两个边界,而不是所有中间数字。添加数字然后排序也是非常低效的。你可以使用一个简单的for循环。
以下是Swift的答案,因为Playground让它更容易,我不得不给你一些工作:)
func arrayOfNumbersBetween(startNumber:NSInteger, endNumber:NSInteger) -> NSArray {
let loopStart=min(startNumber,endNumber)
let loopEnd=max(startNumber, endNumber)
let returnArray=NSMutableArray()
for number in loopStart...loopEnd {
returnArray.addObject(NSNumber(integer: number))
}
return returnArray
}