如何绑定到 NSString?
Posted
技术标签:
【中文标题】如何绑定到 NSString?【英文标题】:How do i bind to a NSString? 【发布时间】:2013-07-23 19:57:20 【问题描述】:有人问过这个问题before,但没有得到回答。
我可以像这样绑定到对象:
[[aCellView textField] bind:@"stringValue"
toObject:myObject
withKeyPath:@"text"
options:nil]];
这很容易,因为我有一个myObject.text
值。
但是如何绑定到 NSString 呢?
[[aCellView textField] bind:@"stringValue"
toObject:aString
withKeyPath:@"" // What should the keyPath be?
options:nil]];
【问题讨论】:
Cocoa-touch 不支持可可绑定。您将获得的最接近的是 KVO。更多信息请看这里:***.com/questions/3812972/… 或者只使用关联对象。NSString
是不可变的,绑定到一个永远不会改变的对象实际上没有意义... @H2CO3 阅读 OS X 上的绑定,这是一个定义明确的机制,它有更多与 KVO 相比,与关联对象有关(在 ios 上不存在)。
关于这个问题最好的部分是stringValue
从来都不是一个有效的绑定。
不,字符串本身不会改变,它会被一个对先前值一无所知的不同对象替换。
【参考方案1】:
您可以绑定到单个对象,但不能绑定到临时对象。我们绑定到关键路径的原因之一是对变量的生命周期以及绑定有更多的了解。将aString
设为调用对象的属性,并以aString
为键路径绑定到self
:
[[aCellView textField] bind:NSValueBinding toObject:self withKeyPath:@"aString" options:@];
【讨论】:
以上是关于如何绑定到 NSString?的主要内容,如果未能解决你的问题,请参考以下文章
如何将html代码附加到iphone中的NSString变量