Comments (3)
It's funny, but I've written unit test about that case yesterday.
func testObserveWeak_ObserveCGRect() {
var root: HasStrongProperty! = HasStrongProperty()
let latest = RxMutableBox<CGRect?>(nil)
XCTAssertTrue(latest.value == nil)
root.rx_observeWeakly("frame")
>- subscribeNext { (n: NSValue?) in
if let n = n {
var frameValue = CGRect(x: 0, y: 0, width: 0, height: 0)
n.getValue(&frameValue)
latest.value = frameValue
}
else {
latest.value = nil
}
}
...
CGRect
becomes in KVO world NSValue
, and it's not CGRect
, so that's why it's nil
.
Having said that, I think I can actually improve this and internally unwrap CGRect
and CGPoint
so it should work when you do
nibView.rx_observe("bounds") as Observable<CGRect?>
obs >- subscribeNext { bounds in
println(bounds)
}
Just didn't came to my attention :)
Let me know does that work.
I think I know a way to improve this for next release, but I will need to investigate more.
from rxswift.
Also, be careful, I think UIView
classes aren't officially KVO compliant, but on the other hand, I doubt Apple
will ever make them not compliant :p
from rxswift.
I've added official support for observing CGRect
, CGSize
and CGPoint
. There are specializations that handle those cases.
It's even documented now :)
https://github.com/kzaher/RxSwift/blob/master/Documentation/GettingStarted.md#observing-structs
Closing this issue, let me know if you have any further problems.
from rxswift.
Related Issues (20)
- Missing imports warn 'this is an error in Swift 6'
- docs.rxswift.org (RxSwift Reference) - all links to Documentation/[FILENAME].md are broken HOT 1
- Crash app Xcode 15 HOT 3
- Crash: value tried to resume its continuation more than once HOT 2
- Any support/plan of Privacy Manifest? HOT 119
- Deprecated code warnings in playground Filtering_and_Conditional_Operators.xcplaygroundpage HOT 1
- -[RxCocoa.RxTextViewDelegateProxy text]: unrecognized selector sent to instance 0x28132bdb0 HOT 2
- asSingle -> Sequence contains more than one element. HOT 5
- Update
- Cocoapods trunk push verification fails on pods dependent on RxSwift using Xcode 15+ HOT 4
- ConnectableObservable cannot connect once it was disposed HOT 2
- Why is the https://api.snapkit.com initialized before FinishLaunchingWithOptions? HOT 1
- drive's onNext closure should be main actor isolated HOT 1
- No available version for github "ReactiveX/RxSwift" satisfies the requirement: == 6.6.0 HOT 4
- Using in a React Native Native Module crashes with outlined init with copy of Disposable HOT 7
- Proposal, add overlapping buffers. HOT 2
- withLatestFrom *only* takes immediate values it does not wait for deferred events from the `second` observable HOT 10
- `asSingle()` to automatically run `take(1)` beforehand HOT 17
- need add PrivacyInfo.xcprivacy HOT 1
- Need add PrivacyInfo.xcprivacy after 2024.5.1 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rxswift.