小编Mob*_*ord的帖子

从CGImageRef获取NSImage

我正在尝试在CoreGraphics中处理图像,然后将处理后的图像返回到NSImage保存和显示.我有足够的资源来介绍如何在iOS中执行这些功能,但是辅助方法似乎缺失了NSImage.在iOS中,类方法是imageWithCGImage:,如何在Mac OS中执行此操作?

macos core-graphics nsimage cgimageref

25
推荐指数
1
解决办法
1万
查看次数

从ActiveRecord获取表名

我曾经ActiveRecord::Base.set_table_name在动态创建的ActiveRecord类上设置我的表名.现在我需要知道如何在以后获得该值.api文档没有提及如何执行此操作.此外,我无法从ActiveRecord类名称派生表名,因为它们的键控方式与表名不同.

这是我正在做的更好的例子

table_klass = Class.new(ActiveRecord::Base)
    ActiveRecord::Base.const_set(const_name,table_klass)
    app = @app
    table_klass.class_eval do
      after_save do
        @@channel.push self
      end
      set_table_name t.server_table
      establish_connection(
        :adapter  => "mysql2",
        :host     => app.db_host,
        :username => app.db_user,
        :password => app.db_pass,
        :database => app.db_name
      )
    end
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果const_name= Test和数据库名称是Database,它应该创建一个ActiveRecord :: Base :: DatabaseTest类.但是当我调用table_name时,我得到了未定义的局部变量或方法.我需要在类上调用table_name吗?

更新: 我打电话给它instance.class.table_name

ruby activerecord ruby-on-rails

24
推荐指数
3
解决办法
2万
查看次数

WKWebKit Mac OS NSPrintOperation

WebKit 1暴露了WebFrameView我可以进行所有打印操作.

- (void)webView:(WebView *)sender printFrameView:(WebFrameView *)frameView {
  NSPrintOperation *printOperation = [frameView printOperationWithPrintInfo:[NSPrintInfo sharedPrintInfo]];
  [printOperation runOperation];
}
Run Code Online (Sandbox Code Playgroud)

使用WKWebKit API,我似乎无法弄清楚如何执行类似的操作或抓取哪个视图进行打印.我所有的努力都提出了空白页面.

macos objective-c nsprintoperation wkwebview

8
推荐指数
1
解决办法
627
查看次数

在薄薄的导轨上安全地停止em-websocket

我有一个rails应用程序我在瘦服务器上运行以利用EventMachine运行循环.问题是我希望能够包含em-websocket来处理来自ws的信息,并在不停止EM运行循环的情况下停止并启动websocket.这就是我启动websocket的方式.

EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080) do |ws|
  ws.onopen { }
  ws.onclose { }
  ws.onmessage { |msg| }
end
Run Code Online (Sandbox Code Playgroud)

问题出在启动/停止代码中.来自em-websocket的文档

#Start WebSocket
def self.start(options, &blk)
  EM.epoll
  EM.run do

    trap("TERM") { stop }
    trap("INT")  { stop }

    EventMachine::start_server(options[:host], options[:port],
      EventMachine::WebSocket::Connection, options) do |c|
      blk.call(c)
    end
  end
end


#Stop WebSocket
def self.stop
  puts "Terminating WebSocket Server"
  EventMachine.stop
end
Run Code Online (Sandbox Code Playgroud)

问题是内部的em-websocket代码不跟踪来自EM:start_server的签名,以便能够调用EventMachine :: stop_server(签名)来关闭它.有没有办法可以在不修改em-websocket的情况下覆盖这些函数,这样我就可以安全地启动/停止这些websockets?我想它的表现更像是标准的Eventmachine服务器.

ruby-on-rails thin eventmachine em-websocket

7
推荐指数
1
解决办法
950
查看次数

RGeo投影缓冲区多边形太小

我有一个使用rgeo 0.3.19的rails应用程序,proj4支持使用rgeo-activerecord 0.4.5 gem连接到PostGIS 1.5数据库.

我的应用程序有一个名为Region的模型,它包含一个地理点,一个​​半径和一个多边形.当一个新区域即将保存时,它使用区域的geofactory缓冲区函数来使用半径和地理点创建多边形.

这是用于区域模型的geofactory

GEOFACTORY = RGeo::Geographic.projected_factory(:buffer_resolution => 8, :projection_proj4 => '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs', :projection_srid => 3857)
Run Code Online (Sandbox Code Playgroud)

我正在使用的projection_srid是Apple和Google映射的mercator投影3857.问题是正在创建的缓冲区与我在苹果地图或谷歌地图中绘制的缓冲区大小不同.例如,如果我使用内置的MapKit函数MKCircle

[MKCircle circleWithCenterCoordinate:self.coordinate radius:50];
Run Code Online (Sandbox Code Playgroud)

圆圈将像这样绘制和叠加. iOS绘图半径

但是如果我从数据库中构成多边形形状的缓冲函数创建的坐标并在谷歌地图上绘制它我得到了这个.

GoogleMaps Radius

如您所见,使用相同投影系统创建的多边形小于应有的多边形.该问题基于所定义的半径的大小呈指数地失控.我也尝试使用RGeo中定义的simple_mercator工厂,它产生了相同的结果.

希望有人能够深入了解为什么当经度,纬度投影点被缓冲时,它会创建一个不正确大小的多边形.

gis postgis ruby-on-rails rgeo

5
推荐指数
1
解决办法
1306
查看次数

SQL数据项目:语法错误'$('

我有一个SQL数据项目,它是从我的生产数据库的模式创建的.它将所有存储过程引入到项目中,并且我尝试将生成的脚本部署到localdb以进行脱机开发.

问题是,似乎SQL数据项目正在尝试验证它生成的SQL脚本,但它遇到了包含字符串的第一个实例$(.

例1 INSERT INTO mytable (text) VALUES ('$(')

这会导致错误

$('正在解析时遇到了不正确的语法.

例2 INSERT INTO mytable (text) VALUES ('$(this')

这会导致错误

$(正在解析此'时遇到了错误的语法.

它似乎是SQL数据项目解析验证中的一个错误,即使脚本在SQL Management Studio中正常运行,也会阻止部署成功.

更新 我尝试了一些想法,似乎问题是在SQL数据项目解析字符串和遭遇时$(.此外,$(在字符串中的所有内容都会被错误捕获,直到下一个单引号实例(无论是转义单引号还是字符串单引号的结尾)

sql escaping localdb visual-studio-2012

5
推荐指数
1
解决办法
602
查看次数