小编Rob*_*hen的帖子

NSPredicate和CoreData - 在iOS上决定Date属性是"今天"(或在昨晚12点到今晚12点之间)

我正在使用a NSFetchedResultsController和a UITableViewController来填充CoreData数据库中的UITableView.

我有一个NSDate对象保存到标记为"startTime"的Date属性中.然后我试图通过使用如下所示的方式NSPredicate来获取今天的数据:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"startDate == %@",
                          todaysDate];
Run Code Online (Sandbox Code Playgroud)

我的结果为零.我理解这一点,因为一个NSDate对象只保持自1970年1月1日以来的秒数或毫秒数等等吗?因此,比较1111111111111和1111111111112,而在同一天,两个不同的NSDate对象是不相等的.

那么,如何NSPredicate格式化以便它可以做到呢?我猜它会创建两个NSDate对象:一个是昨晚12点,另一个是今晚12点,比较startDate,看看它是否在这两个之间NSDate.

我有点新手NSPredicate,那怎么能实现呢?

core-data nsdate uitableview nspredicate nsfetchedresultscontroller

8
推荐指数
1
解决办法
5257
查看次数

iOS - MagicalRecord/AFNetworking/NSFetchedResultsController - 后台重新同步过程导致永久挂起

所以我想要实现的目标

是一个应该在后台使用AFNetworking和Magical Record完成的同步过程,但当连接到NSFetchedResultsController的视图控制器当前打开或已打开(但弹出)时会导致永久挂起.

该应用程序在用户第一次打开手机时同步,然后通过Magical Record框架始终在Core Data持久性存储中使用数据.然后,当用户想要确保数据是最新版本时,他们进入设置并单击"重新同步",这将导致执行以下代码:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0),^{
    [[CoreDataOperator sharedOperator] commenceSync:self];
});
Run Code Online (Sandbox Code Playgroud)

这将使用单例CoreDataOperator(NSObject的子类 - 也许它应该是NSOperation?)启动同步过程,它会触发以下代码:

[[ApiClient sharedClient] getDataRequest];
Run Code Online (Sandbox Code Playgroud)

然后然后在单身AFHTTPClient子类中触发这个坏男孩:

[[ApiClient sharedClient] postPath:url parameters:dict
 success:^(AFHTTPRequestOperation *operation, id responseObject) {
 [request.sender performSelector:request.succeeded withObject:response];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
 [request.sender performSelector:request.failed withObject:response];
}
 ];
Run Code Online (Sandbox Code Playgroud)

有效地说:AFHTTPClient发布此信息,当它成功时,将信息传回给提供的选择器(我知道这是通用的,但请求不是问题)

现在,对A​​FNetworking进行编码,以便在主线程上调用所有完成选择器(在本例中具体为成功和失败); 所以为了防止阻塞主线程,处理响应并准备保存的代码被发送回后台线程:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
    id responseData;
    [self clearAndSaveGetData:responseData];
});
Run Code Online (Sandbox Code Playgroud)

然后使用Magical Record框架调用导致保存的函数(仍在后台线程中):

NSManagedObjectContext *localContext = [NSManagedObjectContext contextForCurrentThread];

[DATAENTITY truncateAllInContext:localContext];
<!--- PROCESS DATA INTO DATAENTITY -->
[localContext saveNestedContexts];
Run Code Online (Sandbox Code Playgroud)

我选择saveNestedContexts是因为因为我在后台工作,所以我希望它一直推到默认上下文,我假设它是父上下文?(但到目前为止这还不是问题).

现在,这些数据可以成为成千上万行,因此我使用NSFetchedResultsController安全有效地访问这些数据,并且它们用于与设置或主页不同的视图控制器中.

以下是三种情况:

  1. 包含FRC的ViewController尚未被访问(不可见且以前未见过) - 后台同步工作完美无缺,减去了一点滞后,因为节省了堆栈.
  2. 包含FRC的ViewController已被访问并且当前可见 - …

core-data nsfetchedresultscontroller ios afnetworking magicalrecord

6
推荐指数
1
解决办法
1440
查看次数

通过越狱加载的应用的Documents文件夹的位置

我在越狱的iPhone上测试我的应用程序.在我的代码中我使用[NSUserDefaults standardUserDefaults].

我正在通过SSH将我的应用程序放在手机上,因此它不会生成文件夹/var/mobile/Applications.如果应用程序在那里,任何使用NSUserDefaults都会在"Documents"文件夹中创建一个.plist.由于我的应用程序没有生成此文件夹,我找不到.plist.

通过SSH上传的越狱应用程序的Documents文件夹在哪里(在.app,NOT .ipa中)?

cocoa-touch jailbreak nsuserdefaults .app ios

3
推荐指数
1
解决办法
2953
查看次数

iOS - GPU加速矩阵转置,乘法和特征分解困境

我正在开发一个需要在iOS平台上使用向量和矩阵的库.我决定研究OpenGLES,因为我计划进行的矩阵和矢量操作(主要是转置,矩阵乘法和特征分解)肯定会受益于GPU加速.

问题是我不熟悉OpenGLES,老实说可能不是最好的选择.如果我要使用OpenGLES,我是否必须手动编写执行矩阵转置,乘法和特征分解的算法?或者是否有另一个Apple或第三方框架可以帮助我完成这些任务.

然而,主要的分歧是我希望这些操作是GPU加速的.


我将使用Accelerate Framework和矢量化算法实现我的程序,然后测试它是否足够快以达到我的目的,如果不是,那么尝试GPU实现.

opengl-es matrix eigenvector ios accelerate-framework

3
推荐指数
1
解决办法
1558
查看次数

iOS AFNetworking - ASP.NET Web API .ASPXAUTH存储和删除

我正在使用适用于iOS的AFNetworking Framework.我已经将AFHttpClient子类化并将其用作单例,即[TestAFClient sharedClient]

我正在使用需要使用.ASPXAUTH cookie的ASP.NET Web服务API.首先我来认证,接收的cookie .ASPXAUTH响应,然后必须通过该Cookie与每个后续请求.

经过几次测试后,似乎是因为我使用的是单例AFHTTPClient,因此.ASPXAuth cookie仍然存在,因此不需要显式存储cookie.

但是,作为我的应用程序的一部分,我需要在某个时候"注销".

为了注销,清除此cookie的最有效方法是什么?将单例设置为nil并重新初始化它?做点什么setValue:forKey:

另外,我明确存储.ASPXAUTH cookie是否更好?这是否会在必要时到期或自动续订?

谢谢,

罗比

asp.net objective-c .aspxauth sbjson afnetworking

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

惰性符号绑定失败:未找到符号:_arc4random_uniform

所以我编写了一个iOS游戏,我正在使用arc4random_uniform选择随机启动.

在Sim上,它工作正常,但在我的手机上它会抛出此错误(来自syslog):

Nov 26 13:44:26 iPhone ----[2184]: placePowerupCalled
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.-----[0x1f08][2184]: dyld:  lazy symbol binding failed: Symbol not found: _arc4random_uniform
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.-----[0x1f08][2184]:   Referenced from: /Applications/------.app/-----
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.------[0x1f08][2184]:         Expected in: /usr/lib/libSystem.B.dylib
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.------[0x1f08][2184]: dyld: Symbol not found: _arc4random_uniform
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.-----[0x1f08][2184]:   Referenced from: /Applications/------.app/-------
Nov 26 13:44:26 iPhone UIKitApplication:com.yourcompany.-----[0x1f08][2184]:   Expected in: /usr/lib/libSystem.B.dylib
Nov 26 13:44:27 iPhone ReportCrash[2185]: Formulating crash report for process -----[2184]
 Nov 26 13:44:27 iPhone com.apple.launchd[1] …
Run Code Online (Sandbox Code Playgroud)

iphone jailbreak arc4random ios

0
推荐指数
1
解决办法
2190
查看次数