作为一名iOS程序员,我有时会钻研C以获得更快的结果(实际上是为了好玩),并且我努力在函数调用中修改C数组的值。虽然我认为这个答案可能有所帮助(Modifying a array in a function in C),但我不知道从哪里开始实施它。在objective-c函数中修改C数组
目前我有:
[object.guestlists enumerateObjectsUsingBlock:^(id obj, BOOL *stop) {
NSObject *someNSObject = [NSObject new];
NSInteger array[3] = {totalIncomingMales,totalIncomingFemales,
totalIncomingGuestsCount};
[self callMethod:object withCArray:cArray];
}];
- (void) callMethod:(NSObject*) object withCArray:(NSInteger*) cArray {
// do something with that object
NSInteger totalIncomingMales = cArray[0],
totalIncomingFemales = cArray[1],
totalIncomingGuestsCount = cArray[2];
// modify these integers internally so that the C-array passed in is also modified
}
显然,这传递一个指针,因此不修改该值。我尝试用NSInteger **替换NSinteger *并且使得例如 例如totalIncomingMales = * cArray [0],但唉,我无法通过c数组作为参数(即使与&符号)。
一些有用的材料和潜在的解决方案,将不胜感激!
您只能在NSObjects及其子类中使用**。 NSInteger只是一个原始的int。我相信*和/应该工作。 – 2014-12-05 13:29:16
'arrayOfIntegers'来自哪里? – Paulw11 2014-12-05 13:32:51
对不起,已编辑。我想,我尝试使用&符号。让我再试一次 – Rambatino 2014-12-05 13:38:50