我将gem放入gem文件中,bundle安装它.
在我的application.rb中有这个:
require 'pdfkit'
config.middleware.use PDFKit::Middleware, :print_media_type => true
Run Code Online (Sandbox Code Playgroud)
做rake中间件,我看到'使用PDFKit :: Middleware'.
我的路线中有这个
match "/option_invoice/view_invoice/(/:id)" => "option_invoice#view_invoice"
Run Code Online (Sandbox Code Playgroud)
现在,当我转到http://0.0.0.0:3000/option_invoice/view_invoice/2.pdf时,我得到了丢失的模板错误.没有.pdf的页面显示完美.
缺少模板option_invoice/view_invoice,application/view_invoice with {:formats = >>> [:pdf],:locale => [:en],:handlers => [:coffee,:erb,:builder,:arb]}.
如果有帮助的话,我在轨道3.2.2上.
有帮助吗?
所以我将块动作存储到一个nsmutabledictionary中,然后当一个响应返回到websocket时调用它们.这会将异步请求转换为块语法.这是精简代码:
- (void)sendMessage:(NSString*)message responseAction:(void (^)(id))responseAction
{
NSString *correlationID = (NSString*)[[message JSONValue] objectForKey:@"correlationId"];
[self.messageBlocks setObject:responseAction forKey:correlationID];
NSLog(@"Sending message: %@", correlationID);
[webSocket send:message];
}
- (void)webSocket:(SRWebSocket *)wsocket didReceiveMessage:(id)message;
{
NSString *correlationID = (NSString*)[[message JSONValue] objectForKey:@"correlationId"];
NSLog(@"Incoming message. CorrelationID: %@", correlationID);
void (^action)(id) = nil;
if (correlationID) {
action = [messageBlocks objectForKey:correlationID];
if (action) action([message JSONValue]);
[messageBlocks removeObjectForKey:correlationID];
}
}
Run Code Online (Sandbox Code Playgroud)
注意:服务器使用随请求发送的correlationID进行响应.因此,每个响应都通过该ID链接到每个请求.
这完美,比我预期的更好.我的问题是以这种方式运行块是否安全?正在调用[messageBlocks removeObjectForKey:correlationID]; 足以将其从内存中删除.我记得pre-ARC,block_release是一个选项.
cocoa-touch nsmutabledictionary websocket ios objective-c-blocks
我正在开发一个具有映射功能的应用程序,原生iOS 6地图应用程序中的3D内容对我们的CEO非常感兴趣.
我想知道在MKMapView内部是否可以使用该按钮,或者仅在内置地图应用程序中可用?
实现如下设计的最佳方法是什么?
几件事:
我倾向于UICollectionView,但我不确定如何做"级别单元格".其中一种方法可能是将水平图像分成四个并在每个单元格上绘制它们?但是,我不确定这是否是最好的解决方案.
更多信息:

ios ×3
cocoa-touch ×1
grid ×1
iphone ×1
mapkit ×1
middleware ×1
pdfkit ×1
routes ×1
uitableview ×1
websocket ×1