코코아 바인딩의 방향성을 이해하려고합니다. 특히, 바인딩을 시연하기 위해이 작은 프로그램을 작성했으며, 왜 그것이 출력 하는지를 잘 모르겠습니다.코코아 바인딩이 역순으로 업데이트되지 않습니다.
@interface SimpleClass : NSObject
@property (retain) NSString *s;
@end
@implementation SimpleClass
@end
int main(int argc, char *argv[]) {
SimpleClass *simpleClass1 = [[SimpleClass alloc] init];
SimpleClass *simpleClass2 = [[SimpleClass alloc] init];
[simpleClass1 bind:@"s" toObject:simpleClass2 withKeyPath:@"s" options:nil];
//[simpleClass1 willChangeValueForKey:@"s"];
simpleClass1.s = @"Hello, World!";
//[simpleClass1 didChangeValueForKey:@"s"];
NSLog(@"%@", simpleClass1.s);
NSLog(@"%@", simpleClass2.s);
simpleClass2.s = @"Something else!";
NSLog(@"%@", simpleClass1.s);
NSLog(@"%@", simpleClass2.s);
return 0;
}
내가이 프로그램을 실행하면 출력은 다음과 같습니다 :이 바인딩은 단방향 있다고 생각하는 날 리드
Hello, World!
(null)
Something else!
Something else!
여기에 프로그램입니다. 그러나, 나는 this과 this을 보았습니다. 둘 다 바인딩이 양방향이어야한다고 (둘 다 분명하지는 않지만) 말합니다. willChangeValueForKey 및 didChangeValueForKey 행의 주석을 해제해도 출력에는 영향을주지 않습니다.
바인딩이 단방향인지 궁금합니다. 아니면 바인딩 생성시 양방향이어야한다는 것을 지정하는 방법이 있습니까?
이 게시물 확인 : http://stackoverflow.com/questions/14775326/bindtoobjectwithkeypathoptions-is-one-way-binding – user1502383
오른쪽; 나는 그 질문에 이미 링크되어있다. "NSContinuouslyUpdatesValueBindingOption"에 대한 해당 질문에 대한 대답은 바인딩의 방향성과 관련이없는 것처럼 보입니다. – Litherum
결론은 "바인딩이 ** 단방향 **이라고 믿게 만듭니다." – MartinW