0
가 내가있는 NSString 불변 알고이 예Inmutable있는 NSString
import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic,strong) NSString *name;
@end
@implementation Person
@end
int main(int argc, char *argv[]) {
@autoreleasepool {
Person *p = [Person new];
NSString *name = @"Alice";
p.name = name;
NSLog(@"%@",p.name); // prints Alice
NSString *nameBob = @"Bob";
name = nameBob;
NSLog(@"%@",p.name); // prints Alice }
}
}
이, (이름 = nameBob) 나는 그 내용 ("앨리스")를 수정할 수는 없지만,있는 NSString가 가리키는 어디 변경할 수 있습니다. 마지막 NSLog가 "Bob"을 인쇄하지 않는 이유는 무엇입니까?
'name'을 변경했지만'p.name'을 (를) 기록하기 때문에. – rmaddy
그들은 2 개의 다른 포인터입니다. 'name' 포인터의 방향을 바꾸지 않으면'name' 포인터가 여러분의 사람에게 방향을 바꾼다. – CrimsonChris
이 언어는 예상대로 작동합니까? – CrimsonChris