我想(在Xcode5中)使用'removeObjectAtIndex'的'MutableArray'需要一個NSUInteger但我使用的變量是一個整數,所以我鑄(NSUInteger * ),但我得到一個警告,說從較小的整數類型轉換爲'NSUInteger *'(aka unsigned long *)。我還沒有鑄造在代碼中的變量「第二」,以保持警告那裏,但它也是一個整數int或NSInteger爲NSUInteger索引
-(void) moveObjectAtIndex:(NSUInteger *)oldIndex toNewIndex:(NSUInteger *)newIndex{
id *member = [self.array objectAtIndex:*oldIndex];
[self.array removeObjectAtIndex:*oldIndex];
if ((NSInteger)newIndex >=(self.array.count)) {
newIndex--; //i casted newIndex because I got a warning about ordered comparison of NSUInteger with NSInteger (I'm not sure if this is best solution)
}
[self.array insertObject:member atIndex: *newIndex];
}
-(void)moveObjectInArray:(NSMutableArray *)array{
[array moveObjectAtIndex:(NSUInteger *) first toNewIndex:second];
}
爲什麼星號/指針?爲什麼不直接傳遞這些整數作爲參數(並直接檢索它們)?你不太可能會迷惑自己,而且你沒有指針指向任何東西(據我所知)。 – matt
你和@Chuck關於指針和星號的說法完全是關鍵的。我提出了每個人都在這裏提出的建議,並解決了這些問題。謝謝 – snapfish