有一个名为mono-reactive的Rx端口包含一个MonoTouch项目,但是作者announced ten days ago他放弃了该项目,转而使用Microsoft开源实现:
我高兴地宣布,我不再继续使用此代码库了 现在微软已经在Apache许可证中开源了Reactive Extensions。 http://rx.codeplex.com/
MonoDevelop挂起试图在Rx master中打开Rx.sln并且无论如何都没有MonoTouch目标。 PCL support is not there yet for MonoTouch too
我想知道是否有人已经为Rx提供了一个兼容MonoTouch的项目,以及它是否真的可用于生产。
答案 0 :(得分:8)
我自己设置了一个项目,结合了来自{{3的核心,接口, Linq 和 PlatformServices }}。
你去了:
<强> Rx's codeplex 强>
它适用于引用类型,更不用说值类型(见下文)
不幸的是由于bug 现在编译得很好。 https://github.com/stampsy/rx-monotouch 和8329而无法编译。
我也使用了9087,它对我来说效果很好。虽然微软的实现看起来更简洁可靠,但单反应更小,更容易在真正需要时修复。
您可以尝试两种方式,看看哪种方式最适合您 快乐观察!
对于这两个框架,我经常遇到由AOT引起的崩溃 设备的限制。 Xamarin的Rolf告诉我你可以 通常通过不使用值类型来解决大多数AOT限制 Rx泛型类型参数。
例如,IObservable<bool>
扩展名可能会在设备上崩溃,IObservable<long>
也会崩溃,但参考类型应该适用于大多数方法。
在mono-reactive中,我添加了IntervalSafe
方法,该方法返回Unit
(我将其更改为引用类型,而不是结构)而不是long
,因此不会在整个代码库中造成数十次崩溃。
某些Rx方法仍然崩溃,但修复这些崩溃非常容易。
通过Costo或my version of Rx查看Throttle
fix以供参考
我很乐意合并解决其他Rx方法及其重载的拉取请求。