我有NSArray.我在那个数组里面有一些价值.
NSArray *testArray = [NSArray arrayWithObjects:@"Test 1", @"Test 2", @"Test 3", @"Test 4", @"Test 5", nil];
NSLog(@"%@", testArray);
Run Code Online (Sandbox Code Playgroud)
结果如下:
(
"Test 1",
"Test 2",
"Test 3",
"Test 4",
"Test 5"
)
Run Code Online (Sandbox Code Playgroud)
现在我想要这样的结果:
(
"Test 3",
"Test 5",
"Test 1",
"Test 2",
"Test 4"
)
Run Code Online (Sandbox Code Playgroud)
有没有办法在不重新初始化阵列的情况下做到这一点?我可以交换这个数组的值吗?
使用NSMutableArray交换两个对象.
- exchangeObjectAtIndex:withObjectAtIndex:
Run Code Online (Sandbox Code Playgroud)
这将在给定索引(idx1和idx2)处交换数组中的对象
idx1
要在索引idx2处替换对象的对象的索引.
idx2
用于替换索引idx1处对象的对象的索引.
迅速
func exchangeObjectAtIndex(_ idx1: Int,
withObjectAtIndex idx2: Int)
Run Code Online (Sandbox Code Playgroud)
OBJECTIVE-C 使用NSMutableArray
- (void)exchangeObjectAtIndex:(NSUInteger)idx1
withObjectAtIndex:(NSUInteger)idx2
Run Code Online (Sandbox Code Playgroud)
您的数组必须是一个实例,NSMutableArray否则不允许写入方法(NSArray只读)
使用以下方法:
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject
Run Code Online (Sandbox Code Playgroud)
您将需要一个临时存储来存储替换对象:
id tempObj = [testArray objectAtIndex:index];
[testArray replaceObjectAtIndex:index withObject:[testArray objectAtIndex:otherIndex]];
[testArray replaceObjectAtIndex:otherIndex withObject:tempObj];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5413 次 |
| 最近记录: |