小编Lor*_*o B的帖子

NSTimer,NSTask,NSThread和NSRunloop之间的基本区别是什么?

是什么区别NSTimer,NSTask,NSThread而且NSRunloop,是有关于何时使用它们中的每一个准则?

iphone cocoa multithreading ios

27
推荐指数
1
解决办法
1万
查看次数

带谓词的NSFetchedResultsController忽略从不同NSManagedObjectContext合并的更改

我正在使用NSFetchedResultsController具有谓词的表视图内容:

[NSPredicate predicateWithFormat:@"visible == %@", [NSNumber numberWithBool:YES]]
Run Code Online (Sandbox Code Playgroud)

在后台线程使用单独NSManagedObjectContext我更新几个实体并将其visible值更改NOYES.保存,合并主线程中的更改NSManagedObjectContext.但是,NSFetchedResultsControllerfetchedObjects没有改变.控制器也不会调用-controller:didChangeObject:...委托.如果实体在主线程上以相同的方式更新(我的测试应用程序调用相同的方法),一切都按预期工作.

通知也NSUpdatedObjectsKey包含这些对象.

目前我发现的唯一解决方案是呼叫每个NSUpdatedObjectsKey实体:

NSManagedObjectContext *context = ... // main thread context
[context existingObjectWithID:[object objectID] error:nil]
Run Code Online (Sandbox Code Playgroud)

此问题仅适用于先前与谓词不匹配的更新对象.

我错过了一些明显的东西吗

core-data nspredicate nsfetchedresultscontroller ios

27
推荐指数
1
解决办法
6427
查看次数

如何将NSUInteger转换为NSString?

你怎么把一个NSUInteger变成一个NSString?我已经尝试了,但我一直NSString都是0.

NSUInteger NamesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];  
NSLog(@"--- %d", NamesCategoriesNSArrayCount);  
[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d",    NamesCategoriesNSArrayCount]];  
NSLog(@"=== %d", NamesCategoriesNSArrayCountString);
Run Code Online (Sandbox Code Playgroud)

objective-c nsstring nsuinteger

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

NSFetchedResultsController不显示来自不同上下文的更新

我有一个NSFetchedResultsController和几个操作更新托管对象在不同的​​线程上通过NSOperationQueue.

FRC(带有谓词)看起来像这样:

- (NSFetchedResultsController*)fetchedResultsController
{
    if(fetchedResultsController) return fetchedResultsController;

    NSManagedObjectContext* mainContext = [self managedObjectContext];

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    [fetchRequest setEntity:[NSEntityDescription entityForName:@"Check" inManagedObjectContext:mainContext]];
    [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"isSync == %@", [NSNumber numberWithBool:NO]]];
    [fetchRequest setFetchBatchSize:10];

    fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:mainContext sectionNameKeyPath:nil cacheName:nil];
    fetchedResultsController.delegate = self;

    [fetchRequest release], fetchRequest = nil;

    return fetchedResultsController;
}
Run Code Online (Sandbox Code Playgroud)

主线程和线程操作具有自己的托管对象上下文.他们只共享同一个协调员.

在线程操作中,我将isSync属性从更改NOYES.要知道Check要更新的实体是什么,主要上下文将传递给线程化的a NSManagedObjectID.线程操作检索托管对象,如下所示:

-(void)main
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    NSManagedObjectContext *exportContext = [[NSManagedObjectContext alloc] …
Run Code Online (Sandbox Code Playgroud)

core-data nsfetchedresultscontroller nsoperationqueue nsmanagedobjectcontext ios

22
推荐指数
1
解决办法
9671
查看次数

如何从UITableView中删除一行

我试图从我的表视图中删除一行,到目前为止一直没有成功.我一直收到这个错误:

"由于未捕获的异常'NSInternalInconsistencyException'终止应用程序,原因:'无效更新:第0节中的行数无效.更新后的现有节中包含的行数(5)必须等于包含的行数在更新(5)之前的那一部分,加上或减去从该部分插入或删除的行数(0插入,1删除).'"我用来填充表视图的数组在该类中声明,也是我从sqlite db获取我的数组的对象.

我用来尝试删除行的代码如下.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

if (editingStyle == UITableViewCellEditingStyleDelete) {
    // Delete the row from the data source

    [categoryArray objectAtIndex:indexPath.row];
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];

}   
else if (editingStyle == UITableViewCellEditingStyleInsert) {
    // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}   
}
Run Code Online (Sandbox Code Playgroud)

现在我希望得到回答的问题:

- 如何正确删除行?

- 如果它只是在tableView中留下的那一行,我将面临删除行吗?

- 我可以将方法中使用的tableView更改为我在.h文件中声明的UITableView吗?

非常感谢.


编辑

- 全.m代码

#import "DeleteCategoryTableView.h"
#import "KeyCryptAppAppDelegate.h"


@implementation DeleteCategoryTableView
@synthesize …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitableview

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

viewWillAppear,viewDidAppear,viewWillDisappear,viewDidDisappear的指南

是否有正确使用这些方法的指导方针?特别是,我想知道我可以在其中使用什么类型的代码.

例如,如果我必须调用从WS检索数据的方法,我在哪里调用它?我在哪里可以注册/取消注册NSNotification?等等

objective-c uiviewcontroller viewdidappear viewwillappear ios

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

iOS CoreData NSPredicate一次查询多个属性

我试图用一个UISearchBar查询的多个属性NSManagedObject 我有一个NSManagedObjectPerson,每个人都有一个namesocialSecurity财产.现在我的代码可以为其中一个属性或另一个属性执行搜索(获取),但不能同时执行这两个属性.

- (void) performFetch
{       
    [NSFetchedResultsController deleteCacheWithName:@"Master"];  

    // Init a fetch request
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"MainObject" inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];

    // Apply an ascending sort for the color items
    //NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Term" ascending:YES selector:nil];
    NSSortDescriptor *sortDescriptor;
    sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"fullName" ascending:YES selector:@selector(caseInsensitiveCompare:)];    

    NSArray *descriptors = [NSArray arrayWithObject:sortDescriptor];
    [fetchRequest setSortDescriptors:descriptors];

    // Recover query
    NSString *query = self.searchDisplayController.searchBar.text;
    //if (query …
Run Code Online (Sandbox Code Playgroud)

core-data nspredicate nsfetchrequest ios

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

RestKit和AFIncrementalStore之间的差异

在我的iOS应用程序中,我试图从(RESTful)服务器获取和发布数据.我认为RestKit和AFIncrementalStore都是不错的选择.但是,我还需要能够脱机保存数据并在应用程序联机时将其推送到服务器.

我试图了解哪个是一个更好的框架用于应用程序.

此外,从一些在线资源中,似乎在AFIncrementalStore上使用故障可能会导致处理ManagedContext(通常是mainThread)的线程在提供网络请求以获取属性时卡住.这是一个大问题吗?

PS:添加afnetworking标签,因为afincrementalstore标签不可用

restkit ios5 afnetworking afincrementalstore

20
推荐指数
1
解决办法
3066
查看次数

使用removeObserver崩溃:forKeyPath:在Foundation中

我在Xcode的"Crashes"部分检索到以下崩溃日志时遇到了一些问题.此崩溃报告仅影响少数设备.

我已经分析了这个问题,但我猜这是Apple框架上的一个错误.但我找不到复制它的方法.

这里有类似的讨论:在removeObserver中帮助崩溃:forKeyPath : .

任何提示?

线程0名称:线程0崩溃:

0基础
0x23507591 _NSKeyValueReplaceObservationInfoForObject + 69(NSKeyValueObserving.m:1166)

1基金会
0x23506fe7 - [NSObject(NSKeyValueObserverRegistration)_removeObserver:forProperty:] + 327(NSKeyValueObserving.m:1552)

2基础
0x23506b03 - [NSObject(NSKeyValueObserverRegistration)removeObserver:forKeyPath:] + 163(NSKeyValueObserving.m:1696)

3基础
0x235069a7 - [NSObject(NSKeyValueObserverRegistration)removeObserver:forKeyPath:context:] + 219(NSKeyValueObserving.m:1663)

4 ApplicationName 0x0002e233 - [Supervisor removeObjectObserver:forKeyPath:] + 115(Supervisor.m:344)

这里removeObjectObserver:forKeyPath:

- (void) removeObjectObserver:(id)object forKeyPath:(NSString *)keyPath { 

    @try {        
        [object removeObserver:self forKeyPath:keyPath context:PrivateKVOContext];

    } @catch (NSException *exception) { }
}
Run Code Online (Sandbox Code Playgroud)

crash objective-c key-value-observing

20
推荐指数
2
解决办法
6350
查看次数

Decimal.TryParse不解析我的十进制值

当我尝试转换类似0.1的内容(来自文本框中的用户)时,我的值b始终为false.

bool b = Decimal.TryParse("0.1", out value);
Run Code Online (Sandbox Code Playgroud)

怎么可以在这里工作?

c# decimal tryparse

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