目前,我一直在添加如下导航按钮:
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Add"
style:self.editButtonItem.style
target:self
action:@selector(doneButtonPressed)];
Run Code Online (Sandbox Code Playgroud)
不通过故事板添加它们似乎有点傻,但我找不到这样做的方法.有没有我错过的?
我需要能够存储numpy array一个dict用于缓存的目的.哈希速度很重要.
该array代表indicies,所以在对象的真实身份并不重要,值.可变性不是一个问题,因为我只对当前价值感兴趣.
我应该散列什么才能将其存储在一个dict?
我目前的方法是使用str(arr.data),这比md5我的测试更快.
我已经从答案中加入了一些例子来了解相对时间:
In [121]: %timeit hash(str(y))
10000 loops, best of 3: 68.7 us per loop
In [122]: %timeit hash(y.tostring())
1000000 loops, best of 3: 383 ns per loop
In [123]: %timeit hash(str(y.data))
1000000 loops, best of 3: 543 ns per loop
In [124]: %timeit y.flags.writeable = False ; hash(y.data)
1000000 loops, best of 3: 1.15 us per loop
In [125]: %timeit hash((b*y).sum())
100000 loops, …Run Code Online (Sandbox Code Playgroud) 我有一个自定义UITableViewCell子类,它在Interface Builder中应用了autolayout约束.单元格包含多个视图,包括a UITextField.
相关地,受UITextField约束的大小使得它与下一个视图之间存在默认的水平间距.
该单元格实例化如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ProgressCell";
ProgressCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier
forIndexPath:indexPath]
cell.textField.text = @"Some string that is different for each cell";
return cell;
}
Run Code Online (Sandbox Code Playgroud)
当单元格首次出现时,UITextField超出正确的框架,并显示在UIView其右侧后面.但是,当我将屏幕上的单元格滚动,暂停,然后向后滚动时,文本会被正确截断.
下面显示了一个示例(在第二次编辑时).
我已经尝试过调用[cell setNeedsLayout]和[cell setNeedsDisplay]进入单元格cellForRowAtIndexPath,以及延迟后执行它们.两者都没有效果.
什么是滚动屏幕执行该操作导致单元格正确显示,我该如何复制或修复底层问题?
编辑:
调用
[self.tableView reloadData];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];
Run Code Online (Sandbox Code Playgroud)
为了重新加载单元格,似乎导致布局第一次正确显示.
但是,它现在在滚动时(偶尔)中断(即,当向上滚动时,布局约束现在未正确应用).
调用[cell setNeedsLayout]中cellForRowAtIndexPath似乎没有解决这个问题.
EDIT2:
顶部电池,如图所示这里,似乎正确(如底部电池一样),直到我向下滚动屏幕.它消失了.
这反映了第一次编辑时的问题 …
我知道,在assertEqual字典上执行时,会assertDictEqual被调用.同样,assertEqual序列将执行assertSequenceEqual.
但是,在assertDictEqual比较值时,似乎没有使用assertEqual,因此assertSequenceEqual不会被调用.
请考虑以下简单的词典:
lst1 = [1, 2]
lst2 = [2, 1]
d1 = {'key': lst1}
d2 = {'key': lst2}
self.assertEqual(lst1, lst2) # True
self.assertEqual(d1, d2) # False ><
Run Code Online (Sandbox Code Playgroud)
我如何通过递归地将类似语义应用于值来测试诸如d1并d2正确比较它们的相等的字典assertEqual?
我想尽可能避免使用外部模块(如本问题所示),除非它们是本机django扩展.
编辑
基本上,我所追求的是这个的内置版本:
def assertDictEqualUnorderedValues(self, d1, d2):
for k,v1 in d1.iteritems():
if k not in d2:
self.fail('Key %s missing in %s'%(k, d2))
v2 = d2[k]
if isinstance(v1, Collections.iterable) and …Run Code Online (Sandbox Code Playgroud) 我有以下(简化)数据结构:
Site
-> Zone
-> Room
-> name
Run Code Online (Sandbox Code Playgroud)
我希望每个房间的名称对于每个网站都是唯一的.
我知道,如果我只想要每个区域的唯一性,我可以这样做:
class Room(models.Model):
zone = models.ForeignKey(Zone)
name = models.CharField(max_length=255)
class Meta:
unique_together = ('name', 'zone')
Run Code Online (Sandbox Code Playgroud)
但我不能做我真正想要的,这是:
class Room(models.Model):
zone = models.ForeignKey(Zone)
name = models.CharField(max_length=255)
class Meta:
unique_together = ('name', 'zone__site')
Run Code Online (Sandbox Code Playgroud)
我尝试添加validate_unique方法,如此问题所示:
class Room(models.Model):
zone = models.ForeignKey(Zone)
name = models.CharField(max_length=255)
def validate_unique(self, exclude=None):
qs = Room.objects.filter(name=self.name)
if qs.filter(zone__site=self.zone__site).exists():
raise ValidationError('Name must be unique per site')
models.Model.validate_unique(self, exclude=exclude)
Run Code Online (Sandbox Code Playgroud)
但我必须误解validate_unique的要点/实现,因为当我保存Room对象时它没有被调用.
实施此检查的正确方法是什么?
在WWDC 2014视频中解释说,您可以直接在Storyboard中设计自定义字体,但到目前为止我只看到iOS字体列表.有帮助吗?
我最近编写了一个返回一系列打开文件的方法; 换句话说,这样的事情:
# this is very much simplified, of course
# the actual code returns file-like objects, not necessarily files
def _iterdir(self, *path):
dr = os.path.join(*path)
paths = imap(lambda fn: os.path.join(dr, fn), os.listdir(dr))
return imap(open, paths)
Run Code Online (Sandbox Code Playgroud)
从语法上讲,如果我执行以下操作,我不希望必须关闭生成的对象:
for f in _iterdir('/', 'usr'):
make_unicorns_from(f)
# ! f.close()
Run Code Online (Sandbox Code Playgroud)
结果,我决定包装_iterdir一个上下文管理器:
def iterdir(self, *path):
it = self._iterdir(*path)
while 1:
with it.next() as f:
yield f
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常.
我感兴趣的是这样做是否是好习惯.我是否会遇到这种模式之后的任何问题(可能会抛出异常)?
(在我开始:我知道有存在的 问题在这个题目,但没有我发现答案,为什么这是一个问题,我经常这样做,并想知道如果我创造潜在的问题.)
我很好奇为什么在函数调用中丢弃volatile限定符需要编译器警告.
情况如下:
volatile uint8_t thingy;
void awesome_function(uint8_t *arg);
awesome_function(&thingy); << warning
Run Code Online (Sandbox Code Playgroud)
现在,我的理解是volatile限定符将变量标记为可能在编译器控件之外的方式发生变化的变量.因此禁用某些优化(最重要的是,根据我的经验,删除'未使用的'变量).
但是,如果我将变量标记为volatile,我担心在此范围内阻止优化.如果我将变量传递给函数,我通常很乐意在该函数中应用标准优化.*
即使编译器想要从函数中删除变量(我通常试图避免的优化),即使它这样做,也不会影响我在此范围内使用它; (函数的结果)函数本身就是我感兴趣的序列点(和左值).
那么,为什么放弃关于函数的限定符会调用警告,因为它不会在当前范围内启用重新排序?这是因为在被调用函数的范围内可能重新排序,这是不允许的volatile变量?如果是这样,为什么这是当前范围的问题?
(*这通常是因为这样的调用用于启动异步操作,最终将对传递给函数的指针进行操作.该函数可以使用指针执行任何操作,只要它最终根据请求更新它.volatile限定符在那里提醒编译器本地变量将异步更改.)
有人向我展示了这个奇怪的python语法示例.为什么[4]有效?
我原以为它要评估[5]或[6],两者都不起作用.是否有一些不成熟的过早优化?
In [1]: s = 'abcd'
In [2]: c = 'b'
In [3]: c in s
Out[3]: True
In [4]: c == c in s
Out[4]: True
In [5]: True in s
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-e00149345694> in <module>()
----> 1 True in s
TypeError: 'in <string>' requires string as left operand, not bool
In [6]: c == True
Out[6]: False
Run Code Online (Sandbox Code Playgroud) 我想在vim-latex中隐藏一些有问题的警告,但我似乎无法弄清楚语法.
我目前有:
let g:tex_IgnoredWarnings =
\'Underfull'."\n".
\'Overfull'."\n".
\'specifier changed to'."\n".
\'You have requested'."\n".
\'Missing number, treated as zero.'."\n".
\'There were undefined references'."\n".
\'Citation %.%# undefined'."\n".
\'Double space found.'."\n"
let g:Tex_IgnoreLevel = 8
Run Code Online (Sandbox Code Playgroud)
对我来说,根据文档看起来是正确的,但仍然出现"发现双重空间"警告(澄清,"仍然出现"我的意思是它在屏幕的左侧突出显示S>).
有任何想法吗?
python ×5
ios ×3
c ×1
django ×1
generator ×1
iphone ×1
latex ×1
numpy ×1
objective-c ×1
python-2.7 ×1
unit-testing ×1
vim ×1
volatile ×1
warnings ×1
xcode6 ×1