您好,登錄后才能下訂單哦!
在Foundation中,可以通過copy
方法來實現深拷貝(deep copy)和淺拷貝(shallow copy)。深拷貝是指創建一個新的對象,同時將對象的所有屬性和子對象也進行拷貝;而淺拷貝是指創建一個新的對象,但是只拷貝對象本身的屬性,而不拷貝子對象。
下面是使用copy
方法實現深拷貝和淺拷貝的示例:
// 創建一個原始對象
NSMutableArray *originalArray = [NSMutableArray arrayWithObjects:@1, @2, @3, nil];
// 深拷貝
NSMutableArray *deepCopyArray = [originalArray mutableCopy];
// 淺拷貝
NSMutableArray *shallowCopyArray = [originalArray copy];
// 改變原始對象的值
[originalArray replaceObjectAtIndex:0 withObject:@4];
NSLog(@"Original Array: %@", originalArray);
NSLog(@"Deep Copy Array: %@", deepCopyArray);
NSLog(@"Shallow Copy Array: %@", shallowCopyArray);
在上面的示例中,deepCopyArray
是通過mutableCopy
方法進行深拷貝,所以當改變原始對象originalArray
的值時,deepCopyArray
不會受到影響。而shallowCopyArray
是通過copy
方法進行淺拷貝,所以當改變原始對象originalArray
的值時,shallowCopyArray
也會受到影響。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。