首先尝试使用集合视图并遇到此错误:
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法使类型的视图出列:具有标识符的UICollectionElementKindCellCell - 必须为标识符注册nib或类或在故事板中连接原型单元'
代码非常简单,如下所示.我不能为我的生活弄清楚我错过了什么.
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
cell.backgroundColor = [UIColor whiteColor];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
集合视图控制器是使用nib创建的,委托和数据源都设置为文件的所有者.
View Controller的头文件也非常基本.
@interface NewMobialViewController_3 : UICollectionViewController <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
@end
Run Code Online (Sandbox Code Playgroud) 尝试使用规范模式并遇到使其在不同实现中工作的问题(例如,在内存,orm等中).我的主要ORM是Doctrine,这意味着我的第一选择是让规范使用Criterias,因为它们可以处理ArrayCollections(用于InMemory实现)和ORM.不幸的是,它们在可以运行的各种查询中相当有限(无法执行连接).
举个例子,假设我有一个UserHasBoughtProduct规范,在构造函数中给出了一个产品ID.该规范在初始级别编写非常简单.
public function isSpecifiedBy(User $user)
{
foreach ($user->getProducts() as $product)
{
if ($product->getId() == $this->productId)
{
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我想找到购买该产品的所有用户,该怎么办?我需要通过某种findSpecifiedBy(规范$规范)将此规范传递给我的UserRepository; 方法.但这在生产中不起作用,因为它必须检查数据库中的每个用户.
我的下一个想法是,规范只是一个接口,实现由基础设施处理.所以,在我的persistence\doctrine\user \目录中,我可能有一个UserHasBoughtProduct规范,在我的persistence\InMemory\user目录中,我有另一个.这在某种程度上是有效的,但是在代码中使用非常烦人,因为我需要通过DI容器或某种工厂提供我的所有规格.更不用说如果我有一个需要几个规范的类,我需要通过构造函数注入它们.不好闻.
如果我可以在一个方法中简单地执行以下操作,那将更为可取:
$spec = new UserHasBoughtProductSpecification($productId);
$users = $this->userRepository->findSatisfiedBy($spec);
//or
if ($spec->isSatisfiedby($user))
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
有没有人有过在PHP中这样做的经验?你是如何设法实现规范模式的,它在现实世界中工作,并且可以在不同的后端使用,例如InMemory,ORM,纯SQL或其他任何东西?
我正在处理需要jQuery的脚本.它将被加载到一个网站上,该网站可能已加载或未加载jQuery.有没有什么方法可以让我的jQuery版本加载到全局命名空间之外,以便在我的匿名函数之外无法访问它?