NSString *string = @"origion";NSString *stringCopy = [string copy];NSMutableString *stringMCopy = [string mutableCopy];[stringMCopy appendString:@"!!"];
上面這段代碼中,需要注意的點:
1. retainCount對常量是無效的,數字會是個很大的數字。它對堆上的內存對象是正確的,對于棧上的常量無效。
2. copy指的是淺復制,只是復制指針。
3. mutableCopy是深復制,復制了對象到新的內存空間
4. mutableCopy出來的都是可變的(NSMutableString)
NSMutableString *string = [NSMutableString stringWithString: @"origion"]; NSMutableString *stringCopy = [string copy]; [stringCopy appendString:@"!!"]; //ERROR NSMutableString *stringMCopy = [string mutableCopy]; [stringMCopy appendString:@"!!"];
上面這段代碼中,需要注意的點:
1. 無論copy的對象是Mutable的(NSMutableString)還是非Mutable的(NSString),copy出來的都是非Mutable的(NSString)。所以會崩潰
新聞熱點
疑難解答