如何#initialize使用RSpec 指定行为?例如这里:
generator.rb
class Generator
attr_accessor :seed
def initialize(seed = nil)
@seed = seed || pick_seed
end
def pick_seed
Time.now.to_i
end
end
Run Code Online (Sandbox Code Playgroud)
generator_spec.rb
require 'generator'
describe Generator
it "calls 'pick_seed' method unless seed specified" do
end
end
Run Code Online (Sandbox Code Playgroud)
我想设置pick_seed从#initialize方法调用的方法的期望.
我正在尝试创建一个包含单个ImageView的窗口小部件,当单击它时,它启动语音识别应用程序.我从来没有使用过小部件和待定的意图,所以我很困惑:如何创建一个未决的意图来启动语音识别活动?
我尝试过类似的东西,当然,它失败了:
Intent intent = new Intent();
Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
voiceIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
voiceIntent.putExtra(RecognizerIntent.EXTRA_PROMPT,
"Speech recognition demo");
voiceIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(RecognizerIntent.EXTRA_RESULTS_PENDINGINTENT, voiceIntent);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.main);
views.setOnClickPendingIntent(R.id.button, pendingIntent);
可能重复:
如何在键盘存在时使UITextField向上移动
我正在尝试实现与iPhone短信应用程序的"聊天喜欢"屏幕非常相似的内容.基本上,它有一个包含所有消息气泡的ScrollView,以及一个用于编写新消息的底部的TextField.
单击TextField时,键盘会出现,所有内容似乎都向上滚动,以便TextField在键盘上方而不会被键盘隐藏.
Apple的文档建议使用ScrollView实现一个应该支持键盘外观的屏幕,该键盘在键盘出现时调整大小(同时保持相同的内容).在我的情况下,这意味着我需要一个ScrollView来包含整个聊天屏幕(消息和TextField),所以一切都会在键盘外观上整齐地调整大小.但是,消息已经在ScrollView中,并且不支持此行为.
我能看到的唯一选择是以某种方式实现我自己的改装行为,而不使用外部ScrollView.但是,对于滚动和调整消息气泡和TextField的动画大小来完美地工作,这似乎是一个很精细的编码.
我该怎么办?
我需要将部分DOM元素转换为带有html标签的字符串.
我试过跟随,但它只打印一个没有标签的文本.
$dom = new DOMDocument();
$dom->loadHTMLFile('http://www.pixmania-pro.co.uk/gb/uk/08920684/art/packard-bell/easynote-tm89-gu-015uk.html');
$xpath = new DOMXPath($dom);
$elements=xpath->query('//table');
foreach($elements as $element)
echo $element->nodeValue;
Run Code Online (Sandbox Code Playgroud)
我想要所有的标签和表格内的内容.有人能帮我吗.这将是一个很大的帮助.
谢谢.
我为 Chrome 浏览器安装了Vimium,但我注意到 Chrome 快捷键具有更高的优先级。例如,如果我尝试<C-u>,而不是向上滚动页面,我会看到页面的源代码。
如何配置 Chrome 或 Vimium 以使用 Vimium 快捷方式而不是内置的 Chrome 快捷方式?
请帮助我找出这两个代码片段之间的区别:(在片段中,Foo是一个派生自objc/Object.h中声明的Object的类)
// Snippet 1
Object* o = [Foo new];
[o free];
// Snippet 2
id o = [Foo new];
[o free];
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑
感谢您的有用答案!让我分享一下我发现的链接,也许它会帮助那些遇到像我一样的问题的人,并希望更好地理解它:
id_vs_NSObject.
我正在尝试将我制作的游戏(WindowsFormApplication)转换为ASP.NET页面.
我的问题是我的WindowFormApplication中有很多"私有"变量,这些变量对游戏很重要.但是当我声明所有变量(在我的Page_Load中)之后,无论我做什么,它们都会变为null(单击按钮,刷新页面).
无论如何在按钮之间保存我的变量(除了Session之外,因为我必须创建6个以上的会话)
我怎样才能更换它?我一直在尝试这个:
string.replaceFirst(substring, "");
Run Code Online (Sandbox Code Playgroud)
但它没有替换,因为我正在做一个递归方法,它给了我一个StackOverflowException ..
任何的想法?
我想创建一个,以便我可以使用set :: find检查某个单词是否在集合中
但是,C字符串是指针,因此默认情况下,该集合将通过指针值对它们进行比较.要正常运行,必须取消引用它们并比较字符串.
我可以将构造函数指向strcmp()函数作为比较器,但这并不是我想要的工作方式.我可能要检查的单词可能是更长字符串的一部分,我不想因为性能问题而创建新字符串.如果没有集合,我会使用strncmp(a1,a2,3)来检查前3个字母.事实上,3可能是最长的,所以我可以将第三个参数保持不变.
有没有办法构建一个通过调用strncmp()来比较其元素的集合?我们非常感谢代码示例.
这是我想要做的伪代码:
bool WordInSet (string, set, length)
{
for (each word in set)
{
if strncmp(string, word, length) == 0
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
但我更喜欢使用标准库函数来实现它.
在给定字符串中第一次出现单词或短语后插入字符的最佳方法是什么?
例如
$ var ='大棕狗越过篱笆';
在狗制作之后插入"s","大棕狗越过篱笆".
谢谢 :)