1

这在 Objective-C 中有效,但在 MacRuby 中我找不到访问返回的 Boxed 对象的属性的方法。

MacRuby 版本 0.7 -> 2010-05-02 OS 的最新版本 -> 10.6.3

Objective-C 版本:

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

这是带有结果的 MacRuby 版本:

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)
4

1 回答 1

0

我发现这已经有票了。http://www.macruby.org/trac/ticket/641

于 2010-05-02T21:18:51.717 回答