是否有适用于iOS的数据绑定机制?

fsp*_*rit 23 data-binding cocoa-touch core-data ios

在.NET中,我只是执行类似DataForm.Source = Object的操作,然后发生魔术.平台将数据从ui文件路由到对象属性,进行验证等.我可以使用Cocoa Touch和CoreData对象做类似的事情吗?

小智 15

Cocoa中最接近的是'Key-Value Observing'.在桌面Cocoa框架中,您可以使用绑定将用户界面元素挂钩到底层对象,以便对象或UI元素中的更改反映在另一个对象中.

虽然iOS上的Cocoa没有这种UI绑定,但您仍然可以使用"键值观察"来将数据模型中的更改与UI元素同步,如下所述:

http://developer.apple.com/library/iOS/#documentation/General/Conceptual/Devpedia-CocoaApp/KVO.html

  • [键值编程指南 - Google搜索](http://www.google.com/search?client=safari&rls=en&q=Key-Value+Coding+Programming+Guide&ie=UTF-8&oe=UTF-8&redir_esc=&ei=M -TWT_33O66hmQW__aTxAg)希望这是一个更可靠的链接:) (6认同)
  • 我无法获得上述链接,但下面的链接确实对我有用.http://developer.apple.com/library/iOS/#documentation/General/Conceptual/Devpedia-CocoaApp/KVO.html (2认同)
  • 这个链接也很笨拙 (2认同)
  • 我想你的意思是:[键值观察编程指南](http://www.google.com/search?q=Key-Value+Observing+Programming+Guide) (2认同)

Kri*_*son 15

我写了一个小开源库,它提供了一些简单的数据绑定功能.它基本上只是键值观察(KVO)的包装器.

GitHub上还有一些其他类似的库:


Rom*_* B. 12

也许还应该提到Github的Reactive Cocoa,一个用于组合和转换值序列的框架,一个.NET的Reactive Extensions(Rx)的Objective-C版本.

绑定机制可以非常简单(从示例中):

// RACObserve(self, username) creates a new RACSignal that sends a new value
// whenever the username changes. -subscribeNext: will execute the block
// whenever the signal sends a value.
[RACObserve(self, username) subscribeNext:^(NSString *newName) {
    NSLog(@"%@", newName);
}];
Run Code Online (Sandbox Code Playgroud)