This works in Objective-C but in MacRuby I cannot find a way to access the properties of the Boxed object that is returned.
MacRuby Version 0.7 -> latest build as of 2010-05-02 OS -> 10.6.3
Objective-C Version:
CLLocation *loc = [[CLLocation alloc] initWithLatitude:38.0 longitude:-122.0];
NSLog(@"Lat: %.2f", loc.coordinate.latitude);
NSLog(@"Long: %.2f", loc.coordinate.longitude);
[loc release];
// Results:
// 2010-04-30 16:48:55.568 OCCoreLocationTest[70030:a0f] Lat: 38.00
// 2010-04-30 16:48:55.570 OCCoreLocationTest[70030:a0f] Long: -122.00
Here is the MacRuby version with results:
framework 'corelocation'
loc = CLLocation.alloc.initWithLatitude(38.0, longitude:-122.0)
# => #<CLLocation:0x20004c4e0>
puts loc.class
# => CLLocation
puts loc.description
# => <+38.00000000, -122.00000000> +/- 0.00m (speed -1.00 mps / course -1.00) @ 2010-04-30 16:37:47 -0600
puts loc.horizontalAccuracy
# => 0.0
puts loc.verticalAccuracy
# => -1.0
puts loc.timestamp
# => #<__NSCFDate:0x20005ff40>
puts loc.coordinate
# => #<Boxed:0x2000af7a0>
puts loc.altitude
# => 0.0
puts loc.coordinate.longitude
# => Error:in `<main>': undefined method `longitude' for #<Boxed:0x2000b7660> (NoMethodError)