在iPhone上学习核心数据.核心数据似乎很少有用于填充表格视图的示例.该CoreDataBooks示例使用节,但他们是从模型中的满弦产生.我想通过姓氏的第一个字母,即地址簿,将核心数据表组织成各个部分.
我可以进入并为每个人创建另一个属性,即单个字母,以便充当分区,但这看起来很笨拙.
这就是我开始的......诀窍似乎在愚弄sectionNameKeyPath:
- (NSFetchedResultsController *)fetchedResultsController {
//.........SOME STUFF DELETED
// Edit the sort key as appropriate.
NSSortDescriptor *orderDescriptor = [[NSSortDescriptor alloc] initWithKey:@"personName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:orderDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
NSFetchedResultsController *aFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:@"personName" cacheName:@"Root"];
//....
}
Run Code Online (Sandbox Code Playgroud) 我们有选择地使用自动布局约束,主要是为了定位与可编辑字段元素相关的标签(通常是UITextView,UITextField).但是,自从为这些字段实现自动布局以来,每当我们卸载视图,解除分配等时,我们都会看到一个令人讨厌的异常并崩溃.异常发生的原因是它试图在卸载视图之前从视图中删除约束.
我们的视图/控制器层次结构如下:
UITableViewController (plain style, but with cell appearance to mimic grouped style)
--> UITableViewCell
----> UIViewController (container for editable form)
------> UICollectionViewController (editable form)
--------> UICollectionViewCell
-----------> UIViewController (editable field)
--------------> UILabel (field label) **HAS CONSTRAINTS**
--------------> UITextView / UITextField (field value) **HAS CONSTRAINTS**
Run Code Online (Sandbox Code Playgroud)
很多时候,当上层表格单元被解除分配/替换/重新加载时,我们会看到一个巨大的异常,然后崩溃,因为它试图释放/卸载其中的视图层次结构.
我试图通过捕获异常(没有帮助)并通过在释放/卸载(in viewWillDisappear:)之前强制删除受影响的视图和所有子视图上的所有约束来缓解崩溃,它似乎没有帮助.我甚至试图逐个删除这些约束,看看是否有一个特别是导致麻烦但是当我们打电话removeConstraint:或removeConstraints:在容器上准备消失时它们都会爆炸.
我很困惑!这是我们例外的一小部分 - 大约有3000行被切断了,所以如果你需要更多,请问.
Exception while deallocating view: { Rows:
0x18911270.posErrorMarker == 4 + 1*0x18911270.negError + 1*0x189112f0.marker + -1*0x189113f0.negError + 1*0x189113f0.posErrorMarker + 1*0x18911a60.marker + -0.5*0x1892dae0.negError + 0.5*0x1892dae0.posErrorMarker + …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何实现CoreData记录的重新排序?
我正在尝试找到一个代码示例,该示例演示如何在单元格使用fetchedResultsController(即与Core Data结合使用)时处理tableView中的移动/重新排列单元格.我正在获取moveRowAtIndexPath:调用我的数据源,但我无法找到正确的黑魔法组合,以使表/数据正确识别更改.
例如,当我将第0行移动到第2行然后放开时,它"看起来"正确.然后我点击"完成".向上滑动以填充第0行的行(1)仍然具有编辑模式外观(减去和移动图标),而下面的其他行滑回到正常外观.如果我然后向下滚动,因为第2行(原来是0,记得?)接近顶部,它会完全消失.
WTF.我是否需要以某种方式使fetchedResultsController无效?每当我将它设置为零时,我都会崩溃.我应该发布它吗?我在杂草里吗?
这是我目前在那里得到的......
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
NSManagedObjectContext *context = [fetchedResultsController managedObjectContext];
/*
Update the links data in response to the move.
Update the display order indexes within the range of the move.
*/
if (fromIndexPath.section == toIndexPath.section) {
NSInteger start = fromIndexPath.row;
NSInteger end = toIndexPath.row;
NSInteger i = 0;
if (toIndexPath.row < start)
start = toIndexPath.row;
if (fromIndexPath.row > end)
end = fromIndexPath.row;
for (i = start; i <= end; …Run Code Online (Sandbox Code Playgroud) 
如果你看一下Matt Gallagher的Cocoa With Love博客,他就UITableView上一个新的美丽重拍进行了精彩的讨论(带有示例代码)......在帖子中,他谈到了动画和异构单元等的许多好处.但是,他列出的一个限制是对我来说有点显示.它不适用于NSFetchedResultsController.将数据加载到单元格中的设计假定所有数据都是静态的并且可立即获得.但是,如果要构建一个包含许多行的表,并且数据由Core Data中的对象组成,那么如果您可以访问FRC的缓存和动态加载功能,则视图控制器可能会受益匪浅.
我的问题:有没有人投入任何精力重新设计他重新访问的UITableView设计,以便与NSFetchedResultsController一起使用?如果某人已经完成了(或正在努力),我会喜欢(爱)在我的工作中尝试它甚至帮助开发它.
因此,在尝试创建MySQL数据库的RESTful前端时,我简要地查看了phprestql(简单而简单,但过于简单),现在我正在尝试将其构建到NetBeans的教程中.我已经完成了基本教程,并且正好使用我的数据库.但是,我正在试图弄清楚如何定制它.
JSON中的所有结果似乎都是字符串,即使MySQL表中的属性是Big Ints,Ints和Doubles.这些类型似乎也在netbeans源中正确设置.但是,JSON将所有内容都返回为字符串.有什么想法可以解决这个问题?(同样,我只是在上面的教程中工作,尽管我的数据库.)
我还试图弄清楚如何在URI中实现其他参数,以进一步细化数据库结果.(http:// localhost/the_db/people_table /?gender_property = male&updated_property = 2011-01-18)...将返回符合这些条件的所有人行.我的部分问题是我甚至不确定这种功能的正确术语,所以它使得查找示例和教程变得有点困难.
这可能与前一项有关,但我也想使用URI"深入"到表/行/属性中以返回单个值(以JSON格式)......(http:// localhost/the_db/people_table/42/lastname)...将返回{"Jones"}
问题的一部分是我几乎不知道Python中的Ruby.我非常熟悉Objective-C,PHP和Perl中的东西.但是,使用那些快速简便的Restful MySQL服务的教程似乎并不常见或流行.
[编辑]
在某种程度上这有助于回答问题#1,我附加了一些java方法来指示如何设置/检索数值属性...从我可以告诉实际的JSON生成是由某些库自动生成的.我在这里看不到它:
/** in the MySQL CommitteeObj table, the committeeId is set as follows */
/* `committeeId` bigint(11) NOT NULL auto_increment */
/** in committee.java */
public class committee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "committeeId")
private BigInteger committeeId;
//.....
}
public committee(BigInteger committeeId) {
this.committeeId = committeeId;
} …Run Code Online (Sandbox Code Playgroud) 也许"流程图"或"流程图"甚至不是我正在寻找的正确术语,但它是我能想到的最好的模拟.基本上,我正在尝试找到一个库或类,它允许在给定空间内动态创建(在代码中)连接的单元格/ UIViews.在代码中,您可以从视图中添加/删除有序单元格,它将相应地进行排列.通常,如果超视图大小允许(即iPad),它将水平排列这些连接的单元格.如果它是空间受限的(iPhone),它将在一条线上水平排列尽可能多的单元格,然后在水平下方继续其余单元格...类似于图形"自动换行".
当然,我怀疑有一个神奇的图书馆可以做到这一切,但如果SO社区可以指出一些更好的术语和/或一些潜在的候选人,我会非常感激.
我看过AQGridView,它是一个如此庞大的库,我相信它的编译大小为+700 Kb是过度的. SSCollectionView非常接近,但您必须手动居中单元格,它还不支持可变单元格高度/宽度.
为了让你更好地了解我的想象,这里有一张照片:

由于SO的搜索功能炸毁每当我输入"@ 2x"不,这是很难说这是否已经问...
我一直在使用colorWithPatternImage:打造我的各种意见平铺的背景图像.但是,当在新的iPhone 4显示器上观看时,这些可以预测看起来像垃圾.所以,我已经建立了@我tile.png文件版本的2倍,但colorWithPatternImage:显然不能正确处理与双尺度UIImages.
有没有人有效地为此问题制定了解决方法?也许在CoreGraphics框架内(其中,我是新手)?
把我的脚浸入更多的核心图形绘图,我试图重新创建一个邪恶的金属旋钮,我已经登陆了可能是一个显示停止的问题.
似乎没有任何方法可以在Core Graphics中绘制角度渐变.我看到有CGContextDrawRadialGradient()和CGContextDrawLinearGradient(),但没有什么,我看,让我画的角度梯度.有没有人知道一个变通方法,或一些隐藏在某处的框架来实现这一点,而无需将旋钮预先渲染到图像文件中?
AngleGradientKnob http://dl.dropbox.com/u/3009808/AngleGradient.png.
iphone ×4
core-data ×3
ios ×3
cocoa-touch ×2
objective-c ×2
uitableview ×2
autolayout ×1
charts ×1
flowchart ×1
gradient ×1
iphone-4 ×1
java ×1
json ×1
mysql ×1
netbeans ×1
rest ×1
uicolor ×1
uiimage ×1