小编Bog*_*tyr的帖子

在不使用typedef的情况下声明块方法参数

是否可以在不使用typedef的情况下在Objective-C中指定方法块参数?它必须像函数指针一样,但是如果不使用中间的typedef,我就无法获得胜利的语法:

typedef BOOL (^PredicateBlock_t)(int);
- (void) myMethodTakingPredicate:(PredicateBlock_t)predicate
Run Code Online (Sandbox Code Playgroud)

只有以上编译,所有这些都失败了:

-  (void) myMethodTakingPredicate:( BOOL(^block)(int) ) predicate
-  (void) myMethodTakingPredicate:BOOL (^predicate)(int)
Run Code Online (Sandbox Code Playgroud)

我不记得我尝试过的其他组合.

parameters objective-c objective-c-blocks

143
推荐指数
4
解决办法
9万
查看次数

增加Xcode的"最近项目"列表的长度?

我在Xcode中打开了很多经常不同项目的工作之间(有的,我积极努力,有些是在那里我找了旧代码项目,我想重新使用SO答案或引用:)),使我项目"工作集"的一部分总是最终落在最近的项目清单上.我确实使用finder选项卡来处理当前项目文件夹的完整工作集,但我真的很喜欢使用最近的项目列表进行快速切换.

有没有办法增加这个列表的长度,以便我可以看到最近打开的项目?

xcode

13
推荐指数
2
解决办法
1854
查看次数

你如何写一个MIT Scheme宏来返回一个lambda表单?

我很困惑,试图在MIT Scheme中创建相当于这个简单的(在Common Lisp中)宏:

(defmacro funcify (exp)
    `(lambda (x) ,exp))
Run Code Online (Sandbox Code Playgroud)

这是一个简单的个人项目,一个基于第二次SICP讲座中建立的功能的数值方程求解器.我不在乎这个宏不是"安全"或"卫生",或者如果exp引用除'x之外的任何符号,它将捕获变量.我希望能够写作

(solv '(* 60 x) '(* 90 (- x 1)))
Run Code Online (Sandbox Code Playgroud)

solv在哪里:

(define (solv lh-exp rh-exp)
    (solve (funcify lh-exp) (funcify rh-exp)))
Run Code Online (Sandbox Code Playgroud)

而不是必须打字

(solve (lambda (x) (* 60 x)) (lambda (x) (* 90 (- x 1))))
Run Code Online (Sandbox Code Playgroud)

但无法弄清楚如何使用MIT Scheme语法规则来做到这一点.

我试过这个,但它不起作用:

(define-syntax funcify
  (syntax-rules ()
    ((funcify y) (lambda (x) y))))
;Value: funcify

(funcify x)
;Value 17: #[compound-procedure 17]

((funcify x) 10)
;Unbound variable: x
Run Code Online (Sandbox Code Playgroud)

我尝试过其他可能不值得一提的东西,eval但无济于事.

另外,在Scheme的宏系统上引用了很好的教程(不是引用),从小的简单示例开始并构建,有充分的注释,特别是展示了如何将backquote-comma样式的LISP宏(对我而言非常直观)转换为Scheme的语法宏系统会很棒.

lisp macros scheme sicp

8
推荐指数
2
解决办法
1028
查看次数

Rspec/Rails:如何验证没有调用类的方法

我想写这样的东西:

it 'does not invoke any MyService' do
    MyService.should_not_receive(<any method>)
    tested_method
end
Run Code Online (Sandbox Code Playgroud)

我不想明确列出MyService的所有方法,因为这会导致一个脆弱的测试,如果将新方法添加到MyService,可能会无声地给出误报.

rspec ruby-on-rails

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

可以从LLVM-IR自动生成llvm c ++ api代码吗?

clang 3.0在线演示页面http://llvm.org/demo/index.cgi提供了输出LLVM C++ API代码的选项,"代表输入程序的LLVM-IR.

"生成LLVM C++ API代码"输出一个clang选项(如果是,它是什么)?

或者它是一个llvm工具选项(哪一个)?

是否可以通过LLVM-IR输入执行相同的操作?基本上我希望看​​到生成特定llvm-ir序列所需的正确llvm c ++ api调用.我想通过示例向后学习,而不是从文档中向前学习.

clang,llvm-as和llvm-dis的手册页和--help和--help-hidden没有显示任何明显的内容.

编辑:好的,现在我在该网页的输出中看到"由llvm2cpp生成".但我在最近的llvm版本中找不到该工具,只有旧版本,在llvm2cpp中有一个2.9和3.0接管的新工具?

llvm clang llvm-ir llvm-c++-api

6
推荐指数
1
解决办法
3572
查看次数

是否可以在没有同步的情况下同时从文件的非重叠区域读取/写入多个线程/进程?

我想知道Linux读/写系统调用是否支持从多个线程或进程对单个磁盘文件的非重叠区域进行非同步的读/写(非附加写)。每个线程将查找文件自己的区域,并以独占方式访问该区域,而不会与其他线程正在操作的区域重叠。

c++ linux concurrency multithreading file

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

RubyMine 5.4调试器超时,但调试控制台显示已连接

在轨道项目中,我对"如何让rubymine调试工作"提出了很多疑问.在RubyMine中选择"运行/调试'myproject'"会弹出一个标题为"连接到调试器"的对话框,该对话框可能在10秒后失败(超时).但是,在调试控制台中,只要我调用Run/Debug,就会有一条信息性消息从"(i)Disconnected"变为"(i)Connected".超时后,这会变回"(i)Disconnected"连接是否真的发生但RubyMine不知道?

编辑:我应该注意到我能够连接到在RubyMine之外手动启动的调试服务器(rdebug-ide),并且我的计算机系统(Mac OS X)有一个名称,并且控制台中没有显示任何错误. ..RubyMine只是在自动启动调试服务器时才连接.

debugging rubymine

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

NSKeyedArchiver的问题 - 根本不存档!

我可能没有在这里看到一些东西,这就是为什么我要求帮助:)这是我有一个NSMutable项目符合NSCoding协议的交易,但NSKeyedArchiver总是无法归档它...这是我的对象实现:

@implementation YTVideo
@synthesize URL,thumb,titulo;

#pragma mark NSCoding
#define kTituloKey          @"titulo"
#define kURLKey     @"URL"
#define kThumbKey       @"thumb"

-(id)initWithData:(NSString *)ktitle :(UIImage *)kThumb :(NSURL *)kURL{
self.titulo = ktitle;
self.thumb = kThumb;
self.URL = kURL;

return self;
}

- (void) encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:titulo forKey:kTituloKey];
[encoder encodeObject:URL forKey:kURLKey];
NSData *thumbData = UIImagePNGRepresentation(thumb);
[encoder encodeObject:thumbData forKey:kThumbKey];
}

- (id)initWithCoder:(NSCoder *)decoder {
NSString* ktitulo = [decoder decodeObjectForKey:kTituloKey];
NSURL* kURL = [decoder decodeObjectForKey:kURLKey];
NSData* kThumbdata = [decoder decodeObjectForKey:kThumbKey];
UIImage* kThumb=[UIImage imageWithData:kThumbdata];
return [self initWithData:ktitulo:kThumb:kURL];
} …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c archiving

0
推荐指数
1
解决办法
2860
查看次数

为什么我们按照我们的方式乘以矩阵?

为什么我们通过将第一行与第二列相乘来实现.它的实际用途和发明者是什么?逻辑上4x2表示四次两次或两次四次.那么为什么矩阵乘法只是相应元素的点积?

这是困扰我的事情之一.

math matrix

0
推荐指数
1
解决办法
2612
查看次数