小编Kov*_*dra的帖子

无法更改iOS 7(iPad)上静态表格视图单元格的背景颜色

在iPad设备上运行时,我无法在iOS 7上更改静态UITableViewCells的背景颜色.您可以使用以下设置轻松检查:

  • 使用两个故事板在Xcode 5中创建一个新的通用项目.
  • 在每个故事板中,只放置一个控制器 - 表视图控制器,并将其设置为初始控制器.
  • 在两个控制器/故事板中的表视图中放置一些(例如3个)静态单元.
  • 在Interface Builder中将每个静态单元格的背景颜色设置为不同的颜色(我使用红色,绿色和清晰的颜色).

现在,在iPhone和iPad模拟器(iOS 7)上运行该应用程序.

在iPhone模拟器上,一切都很好;
在iPad模拟器上,所有细胞都是白色的.

我尝试通过在Interface Builder中为单元格设置运行时属性来强制iPad正常工作:

  • backgroundColor 清除颜色
  • contentView.backgroundColor 清除颜色
  • backgroundView 没有

但没有任何帮助.实际上,设置运行时属性contentView.backgroundColor将改变单元格颜色,但它不能用于清晰的颜色(这意味着在其后面有另一个白色的视图).

相同版本的iOS上的两个设备产生不同的结果是非常奇怪的.其他人可以确认这个bug吗?

有没有人有这个问题的解决方案,或唯一的方法是去动态属性+设置颜色cellForRowAtIndexPath?我想使用静态单元格,因为问题的本质是静态的.

ps我刚刚意识到我忘了尝试将backgroundView.backgroundColor运行时属性设置为清除颜色,而我目前无法访问Mac.也许这会成功.

iphone objective-c uitableview ipad ios

37
推荐指数
2
解决办法
2万
查看次数

事务、锁、隔离级别

我有几个关于标题主题的问题。首先,假设我们使用 JDBC,并且有 2 个事务 T1 和 T2。在 T1 中,我们对一个特定行执行 select 语句。然后我们对该行执行更新。在事务 T2 中,我们在同一行上执行 select 语句。

以下是问题:

1)事务T1什么时候获取上述行的锁?我认为它发生在 select 语句执行期间?

2)事务T1持有锁多久?它会保留它直到事务提交/回滚,还是在此之前释放锁?

3)隔离级别是否控制使用什么类型的锁?例如:

a) 如果我们在事务 T2 上使用读已提交隔离级别,这是否意味着 T2 将为 select 语句使用共享读锁,以便在 T1 已经更新该行的情况下,T2 将无法访问该行(避免脏读),如果 T1 没有更新行,但 T2 将具有对该行的读取访问权限?

b) 如果我们在事务 T2 上使用读未提交隔离级别,这是否意味着 T2 将对 select 语句使用无锁,因此即使 T1 正在修改数据,它也可以读取数据(允许脏读)。

所以,最让我烦恼的问题是谁有权决定应用什么类型的锁?是事务的隔离级别,还是有其他方式?

4) 如果问题 3 的答案是肯定的(隔离级别控制使用什么锁),那么如果我们在 mysql 数据库上使用 jdbc,并且在共享模式构造中使用 select for update 或 select lock,会发生什么情况?我记得第一个是独占锁,第二个是共享读锁。它将如何反映我们的事务隔离级别?

5)可重复读隔离级别会获取什么样的锁?假设我们的 T2(具有可重复读隔离级别)在同一行上有两个 select 语句,而 T1 与之前相同。首先在T2中执行一个select语句,然后执行T1并提交,然后执行T2第二个select。这种情况有可能吗?如果事务在提交/回滚之前一直持有锁,我认为在 T2 完成之前 T1 将无法获得更新的独占锁?

编辑:还有一个问题:

6)在多版本并发控制系统中,当我们设置可序列化 隔离级别时,尝试更新由另一个事务B更新的某些行的事务A(B在A启动后更新了该行)将被回滚。我想问的是,在乐观锁定场景中,这不是发生同样的事情吗?

提前致谢。

locking transactions isolation-level

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

识别一对多关系

我对识别一对多关系的含义有一些疑问.我读了一些关于堆栈溢出的其他相关问题,但我需要更多信息:)

让我们假设我们有表"国家"和表"城市".在我看来,这是一对多识别关系的例子.但是当我使用MySql Workbench在这两个表之间创建一对多的识别关系时,我得到以下结果:

Countries
---------
country_id (PK)
...

Cities
--------
city_id    (PK)
country_id (PK)
...
Run Code Online (Sandbox Code Playgroud)

我们在Cities表中有复合主键,它将允许该表中的后续行(假设country_id和city_id是字符串以提高可读性):

1) France, Paris
2) England, London
3) England, Manchester
4) France, London
Run Code Online (Sandbox Code Playgroud)

为了使其正确,我们需要在city_id上设置UNIQUE约束,以便它只能属于一个国家.但是,在Cities表中将country_id设为NOT_NULL(FK)并获得相同的效果是不是更清楚:

Cities
---------
city_id (PK)
country_id (FK) (NOT_NULL) 
Run Code Online (Sandbox Code Playgroud)

那么,这是识别还是非识别关系?在我看来它是"逻辑上识别",但根据定义,它是非识别的,因为父PK不是儿童PK的一部分.这有点令人困惑:)

database database-design

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