我正在尝试UIToolbar使用自定义图像创建一个带有5个按钮.我这样做的方法是创建类型的按钮UIButtonTypeCustom,然后UIBarButtonItems从这些按钮创建,然后将这些按钮添加到工具栏中setItems:animated:.但是,这会在图像之间添加空格,这会导致第5张图像从工具栏右侧的一半结束.我如何摆脱这些空间?我已经尝试了所有我能想到的东西.
非常感谢帮助.
这是一些关于我如何做到这一点的示例代码:
UIButton *button;
UIBarButtonItem *barButton1,*barButton2;
button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"image1.png"] forState:UIControlStateNormal];
button.bounds = CGRectMake(0,0,button.imageView.image.size.width, button.imageView.image.size.height);
[button addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
barButton1 = [[UIBarButtonItem alloc] initWithCustomView:button];
button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"bart_tb.png"] forState:UIControlStateNormal];
button.bounds = CGRectMake(0,0,button.imageView.image.size.width, button.imageView.image.size.height);
[button addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
barButton2 = [[UIBarButtonItem alloc] initWithCustomView:button];
NSArray *items = [NSArray arrayWithObjects: barButton1, barButton2, nil];
[self.toolbar setItems:items animated:NO];
Run Code Online (Sandbox Code Playgroud) 我在Moq中遇到了一些奇怪的行为 - 尽管事实上我设置了一个模拟对象以某种方式行事,然后在我正在测试的对象中以完全相同的方式调用该方法,它反应就好像方法是从未打电话过
我有以下控制器操作,我正在尝试测试:
public ActionResult Search(string query, bool includeAll)
{
if (query != null)
{
var keywords = query.Split(' ');
return View(repo.SearchForContacts(keywords, includeAll));
}
else
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试代码:
public void SearchTestMethod() // Arrange
var teststring = "Anders Beata";
var keywords = teststring.Split(' ');
var includeAll = false;
var expectedModel = dummyContacts.Where(c => c.Id == 1 || c.Id == 2);
repository
.Expect(r => r.SearchForContacts(keywords, includeAll))
.Returns(expectedModel)
.Verifiable();
// Act
var result = controller.Search(teststring, includeAll) as ViewResult;
// …Run Code Online (Sandbox Code Playgroud) 假设我们有这段C代码:
int x[] = {1, 2, 3, 4, 5};
printf("%d", *(x + 1)); //prints 2
printf("%d", *(x + 500)); //prints 7209065 (...?)
Run Code Online (Sandbox Code Playgroud)
正如你从第二次调用中看到的那样,它仍然会返回一些东西......但它是垃圾.
所以我问,你如何在C中处理这样的情况?也就是说,你怎么知道返回的元素是否真的是数组中存在的元素还是只是垃圾?
有一种简单的方法只能提取一个字段.例如:
$sql = "SELECT field1 FROM table";
$res = mysql_query($sql) or die(mysql_error());
$arr = mysql_fetch_assoc($res);
$field1 = $arr['field1'];
Run Code Online (Sandbox Code Playgroud)
我的感觉说这可以做得更容易.
我正在开发一个页面,该页面使用Javascript httpObject获取代码并使用它来更新页面上的两个元素 - 谷歌地图和列出标记指向的东西的DIV.
这一点工作得很好.问题在于,当我创建标记时,我通过for循环执行此操作,并在每个循环中向标记添加侦听器.然后,当我测试页面时,我发现每个标记都会发生同样的事情.
将鼠标悬停在标记上应更改DIV相应位的边框颜色.相反,每个标记都会更改最后一位的边框.似乎每次添加监听器时,我都会覆盖先前添加的标记的监听器.
我知道,即使您在Javascript中创建新标记,Google Maps API也会保留标记的标识.我不知道如何解决它 - 我尝试在循环外创建一个数组,并改变
var newMarker = new GMarker(newLatLng);
Run Code Online (Sandbox Code Playgroud)
with newMarker [count] = new GMarker(newLatLng);
但它仍然无效.
帮助我,StackOverflow.你是我唯一的希望.:)
编辑:多一点代码
for (count=0;count<=LatArray.length;count++)
{
thisLat = LatArray[count];
thisLong = LongArray[count];
thisHTML = HTMLArray[count];
newLatLng = new GLatLng(thisLat, thisLong, true);
if (mapBounds.containsLatLng(newLatLng))
{
//alert(count);
var dinnerNumber = "dinner_"+count;
newMarkers[count] = new GMarker(newLatLng);
map.addOverlay(newMarkers[count]);
GEvent.addListener(newMarkers[count],'mouseover',function(){document.getElementById(dinnerNumber).style.borderColor = '#000000';
});
}// for
Run Code Online (Sandbox Code Playgroud) 我需要一个具有以下属性的安全(加密)哈希函数:
我能找到的最安全的散列函数在设计时考虑了速度/内存效率,因此编码很复杂.
目前的候选人是Mash-1(或Mash-2): 应用密码学手册.Google图书
谢谢.
编辑:到目前为止,谢谢大家的答案.请原谅我,如果以下是粗鲁的,我只想清楚.请相信我,我完成了我的作业并考虑了"标准"选项.我知道最简单的事情就是使用其中一种,但这不是我想要的.
我想回答的一个问题是:什么加密安全哈希算法可以用最少量的"可读"代码实现?
我已经发布了我能找到的最佳候选人.任何关于更简单的建议或关于Mash-1/2的评论都会有所帮助.
许多编辑器和IDE都有代码完成.其中一些非常"聪明",其他人则不是.我对更智能的类型感兴趣.例如,我已经看到IDE只提供一个函数,如果它是a)在当前范围内可用b)它的返回值是有效的.(例如在"5 + foo [tab]"之后它只提供返回可以添加到正确类型的整数或变量名称的东西的函数.)我还看到他们将更常用或更长的选项放在前面的清单.
我意识到你需要解析代码.但通常在编辑当前代码时无效,其中存在语法错误.当它不完整并包含错误时,你如何解析?
还有时间限制.如果需要几秒钟来完成列表,则完成是无用的.有时,完成算法处理数千个类.
有什么好的算法和数据结构?
有很多网站为Twitter提供额外服务:
他们都有一些共同点:他们似乎从Twitter获得所有更新.否则,他们无法提供高质量结果的复杂服务.
但他们是如何做到的呢?Twitter有一个XMPP提要(Firehose),但不是每个人都可以从中获取数据.
您有什么方法可以推荐或者您认为他们正在使用哪种方法?普通的API太有限了,不是吗?
我有一个2 GB的mysql表,行500k行,我在没有负载的系统上运行以下查询.
select * from mytable
where name in ('n1', 'n2', 'n3', 'n4', ... bunch more... )
order by salary
Run Code Online (Sandbox Code Playgroud)
它需要一个文件存储,并在50到70秒之间完成.
按工资删除订单并在应用程序中进行排序时,总运行时间(包括排序)减少到大约25-30秒.但那仍然太过分了.
知道如何加快速度吗?
谢谢.
hash ×2
mysql ×2
algorithm ×1
arrays ×1
autocomplete ×1
c ×1
c++ ×1
cryptography ×1
expect ×1
google-maps ×1
iphone ×1
javascript ×1
listeners ×1
md5 ×1
moq ×1
optimization ×1
php ×1
scheme ×1
twitter ×1
twitter-feed ×1
uitoolbar ×1
unit-testing ×1
xmpp ×1