に渡すnil
とどうなりarrayWithArray:
ますか?
次のコードがあるとしましょう。
NSMutableArray *myArray = [NSMutableArray arrayWithArray:someOtherArray];
someOtherArray
が起こった場合、それは空の可変配列になるのでしょうか、それともそうなるのでしょうnil
かmyArray
?nil
に渡すnil
とどうなりarrayWithArray:
ますか?
次のコードがあるとしましょう。
NSMutableArray *myArray = [NSMutableArray arrayWithArray:someOtherArray];
someOtherArray
が起こった場合、それは空の可変配列になるのでしょうか、それともそうなるのでしょうnil
かmyArray
?nil
空の配列が返されます。
の実装例+arrayWithArray:
は次のとおりです。
+(id) arrayWithArray:(NSArray *) arr
{
NSMutableArray *returnValue = [NSMutableArray new];
returnValue->objectsCount = [arr count];
returnValue->objectsPtr = malloc(sizeof(id) * returnValue->objectsCount);
[arr getObjects:returnValue->objectsPtr range:NSMakeRange(0, returnValue->objectsCount)];
return returnValue;
}
したがって、arr
がnullの場合、 -count
0が返され、何も返さmalloc
れません。nilオブジェクトに送信されたメッセージは、そのタイプのデフォルトの戻り値を返し、他には何もしないため、何もコピーされません。