- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的 tableViewController 使用 FetchedResultController 的东西,一旦我得到结果,我就用获取的对象创建一个 NSArray
self.sortedArray = [self.fetchedResultsController fetchedObjects];
现在,我得到了所有想要的结果,但是当我对 self.sorted 数组中的对象进行更改时,比如说......
Product *product = [self.sortedArray objectAtIndex:indexPath.row];
product.date = newDate;
bla bla blaaaa
注意:产品是所获取实体的一个实例。
现在,当我尝试从获取的结果中访问旧的、未修改的对象时,
Product *actualProduct = [self.fetchedResultsController objectAtIndexPath:indexPath];
它给了我更新的版本。在此之前我没有保存上下文。
另外,我不能使用
[self.moc refreshObject:product mergeChanges:NO];
因为同一对象的不同字段是使用其他控件更新的,所以我需要跟踪对同一对象的所有更改,还需要引用原始对象。
我通过创建一个单独的 NSMubtableArray 进行了相同的尝试,即使使用 NSArray.. 也得到了相同的结果。
最佳答案
当您将 fetchedObjects 存储在数组中时,您只是存储了对该数组的引用。该数组存储对其拥有的对象的引用。所以当你修改这些对象时,数组将指向被修改的对象。如果您不想更改原始对象,请执行类似的操作或创建一个全新的 Product 对象并从 [self.sortedArray objectAtIndex:indexPath.row] 复制值并修改它。
Product *product = [[self.sortedArray objectAtIndex:indexPath.row] copy];
product.date = newDate;
...
如果您的自定义对象很复杂,您可能必须重写 NSObject 的 copyWithZone:(NSZone *)zone,就像它内部有更多对象一样。在此处阅读有关复制对象的更多信息 https://developer.apple.com/library/ios/documentation/general/conceptual/devpedia-cocoacore/ObjectCopying.html
关于iOS,为什么当我修改从 fetchedResult 创建的 MutableArray 的内容时它会自动更新自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25677098/
我正在开发一个 iOS app.NSMutableArray value Not Pass on NSArray.This Array can be count on table view - (N
我有一个数组 (NSMutableArray) 的字典 (NSMutableDictionary) 存储图像和一些字符串。 @interface SelectViewController () {
我的java代码看起来像这样: for(int i=0;i
这个问题在这里已经有了答案: Deleting objects within a for loop from a NSMutableArray (2 个答案) 关闭 8 年前。
Xcode 告诉我下面的代码在内存泄漏方面存在一些问题。 @property (nonatomic, retain) NSMutableArray *naw_rows; -(void) loadTab
我有一个保留并存储多个对象的可变数组。在某一时刻,一个对象可能会变成零。当这种情况发生时,应用程序将崩溃,因为数组不能有 nil 对象。想象一下类似的事情 [对象1,对象2,对象3,无]; 那么,ob
我已经检查了文档,但我似乎无法弄清楚我应该如何创建 Ember.MutableArray 的实例。我试过: Ember.MutableArray([1,2,3,4,5]) 这不起作用,因为 Mutab
NSUInteger index, count = [delegate.thumbArr count]; for (index = 0; index < count; index++) {
我有一个在应用程序启动时加载的数组,它获取正确的数据并填充该数组,但是一旦我进入 tableviewcontroller,它就会说该数组为空。 这是我获取数据的地方 AppDelegate.h @in
我正在为我的 tableViewController 使用 FetchedResultController 的东西,一旦我得到结果,我就用获取的对象创建一个 NSArray self.sortedAr
我有一个 TableView ,它是从下面列出的可变数组加载的。但是我需要为数组中的每个项目分配一个 ID 并在项目旁边有一个复选框。基本上它是我们搜索的偏好,它让用户根据勾选的复选框确定优先级。所以
这个问题在这里已经有了答案: Compare 2 nsmutablearray and get different object to third array in ios (4 个答案) 关闭
) 我有一个可变的 restaurantObjects 序列化形式 json 数据数组,如果当前对象名为 restaurantDetail 我可以像这样访问 corrdinates float x =
在我的 UITableView 中,我有多个带有日期标题的部分。日期在 NSMutableArray 中按日期排序。我的部分显示了正确的日期,工作正常,numberofrowsinnsection 也
我在它自己的类中有一个“炸弹”CCSprite(如果不使用 cocos2d 的人读到这个,CCSprite 几乎是一个 NSObject)。 CCSprite 文件如下所示: Bomb.h: #imp
我尝试管理多个 View 并将这些引用保存在一个可变数组中。如果我既在可变数组中添加 View 引用,又作为 subview 添加到 View 中。然后引用计数似乎不正确。会导致bad access错
- (NSArray *)map:(id (^)(id))block { NSEnumerator * enumerator = self.objectEnumerator; NSMu
我制作了一个 CGpoints 的 NSMUtableArray 并通过将它们子类化为 NSValue 来存储它们,但我无法获取这些值。在这里,我做了什么。 CGPoint graphPoint;
我不明白为什么我在这段代码中收到“发送到不可变对象(immutable对象)的变异方法”。该数组必须以某种方式是不可变的,但我不知道为什么。 界面: @interface SectionsVi
我是一名优秀的程序员,十分优秀!