我正在开发一款使用Core Data的iPhone应用程序.该应用程序调用Web服务,解析生成的XML文件,然后在我的应用程序中创建或修改Core Data对象.我已经处理了Web服务调用和异步解析,但我一直在将解析后的数据交给主线程来操作Core Data对象.我也想在后台线程中运行这个过程.(暂停1-2秒不能带来出色的用户体验)
显而易见的方法是专门为后台线程创建一个托管对象上下文,但后来我在Apple的核心数据编程指南中读到了这一行:
持久性存储协调器向其受管对象上下文提供一个虚拟存储的外观.对于完全并发的操作,您需要为每个线程使用不同的协调器.
所以这里有一个问题:您不能让两个人NSPersistentStoreCoordinator提供对同一商店的访问权限.但是,Marcus Zarra的核心数据书断言这NSPersistentStoreCoordinator 是线程安全的,并将序列化I/O请求(第157页).
有人可以为我清除这个吗?是否可以在NSPersistentStoreCoordinator与主线程共享相同线程的单独线程上运行第二个托管对象上下文?或者,更简洁,是NSPersistentStoreCoordinator线程安全的?
我正在开发一个我想在某天出售的应用程序 - 早点而不是晚点!我想开发一个相当简单的序列号方案来保护它.
我一直在想这个(很少),我认为公钥加密是一个很好的起点.我可以生成一个标识许可证的字符串(如SKU + plain ole'整数序列号),哈希,加密,并将序列号+标识符编码为25位(左右)字母数字键.然后,应用程序将密钥解码为序列号和"签名",生成标识符散列,使用相应的公钥解密"签名",并将其与生成的标识符散列进行比较.
本质上,产品密钥包含两个数据:用户声称拥有的序列号以及程序可用于验证声明的各种签名.我不知道25个字母数字字符(每个编码5位,实际总计120位)是否足以满足所有这些要求.但是,它不必具有加密安全性,足以使代码不易被猜测.我可以使用短键和短哈希.
就实现而言,应用程序是用Objective-C为Mac OS X编写的,但考虑到将代码注入Cocoa应用程序是多么容易,我可能会直接编写验证代码.
大家早上好,
我一直在尝试编写一个从需要身份验证的远程Web服务执行某些GET的应用程序.我的主要问题是这些远程服务器中的大多数(并且有很多远程服务器)没有有效的证书.我有代码接受无效的证书和代码,以正确的uname&pass(下面)来响应挑战.我遇到的问题是让两人一起玩.我似乎无法找到一种方法来发送挑战NSURLCredential或正确链接回调的方法.当我试图将它们连接起来时,我无法NSURLRequest接到didReceiveAuthenticationChallenge两次电话.
任何想法将不胜感激!
认证代码......
-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
if(!hasCanceled){
if ([challenge previousFailureCount] == 0) {
NSURLCredential *newCredential;
newCredential=[NSURLCredential credentialWithUser:_username password:_password persistence:NSURLCredentialPersistenceNone];
[[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge];
}
else {
[[challenge sender] cancelAuthenticationChallenge:challenge];
NSLog(@"Bad Username Or Password");
badUsernameAndPassword = YES;
finished = YES;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个非基于文档的核心数据应用程序.有一个NSTreeController管理单个显示的对象集合NSOutlineView作为源列表.它们是常见的东西:标题,文件夹,智能文件夹等.
这些容器对象中的每一个都有一组contents对象.我有三个独立的视图控制器,以各种方式显示这些对象(一个NSTableView和两个自定义图形视图,如果你真的想知道)但这些只是相同数据的三个不同的演示.它们应始终显示相同的对象,共享相同的选择等.
我也使用NSViewControllers 的层次结构来管理我的观点.(如果我当时知道Cathy Shive的优秀KTUIKit,我会用它,但是我的视觉控制器非常相似 - 并且非常受她的启发)
就像现在一样,我NSTreeController在源视图列表视图的视图控制器中占有一席之地.我NSArrayController在每个子视图控制器中都有一个绑定到NSTreeController通道的一些过于复杂的键路径.
那么,在我看来,需要改变的是:
NSTreeController需要迁出大纲视图的控制器.NSArrayController每个内容视图都可以绑定到一个单独的视图而不是三个单独的视图.虽然我不太确定这一点.什么我遇到的困难是找出哪里,这些东西应该活.我很难决定哪些对象(如果有的话)真正"拥有"各种控制器.父视图控制器是否拥有它?窗户控制器?由于这是应用程序级数据,我是否应该让App Delegate拥有这些数据?(我可以想象一个使用可能想要打开多个窗口的情况,虽然目前不支持)StackOverflow蜂巢思维的想法是什么?
我有一个 Core Data iPhone 应用程序,可以显示Subscription其中任何items不存在的实体read。换句话说,我构建了一个这样的谓词:
[NSPredicate predicateWithFormat:@"ANY items.read == NO"]
Run Code Online (Sandbox Code Playgroud)
Subscription虽然这适用于初始获取,但当我修改 时它不会影响实体Item,因此NSFetchedResultsController永远不会重新评估Subscription实体。什么是更好的构造方法,以便在设置Subscription项目的属性时更新实体?read
我确实尝试unreadCount在 上创建一个属性Subscription并使用keyPathsForValuesAffectingUnreadCount它返回包含items.read. 我没想到这会起作用,而且没有。我收到一个异常,_NSFaultingMutableSet告诉我该read密钥不受支持。
我正在编写一个程序,它在NSScrollView中嵌入了一个NSView,用户可以放大.我很乐意进行设置,以便用户可以使用MacBook Air和新的unibody MacBooks/MacBooks Pro支持的多点触控捏动手势以及Safari和iPhoto等应用程序来缩放视图.我已经通过Apple的文档进行了搜索,无法弄清楚如何做到这一点.
假设我有一个CoreData实体"Point",它有两个属性x和y(两个NSNumber).
NSPredicate如何让我找到最接近的点a,b?距离= sqrt((xa)(xa)+(yb)(yb))
虽然我可以定义一个计算到预定义点的距离的瞬态属性,但我无法看到在启动fetchrequest时如何以编程方式更改该点.
任何帮助将不胜感激.
cocoa ×6
core-data ×3
iphone ×3
cocoa-touch ×2
architecture ×1
license-key ×1
nspredicate ×1
nsurlrequest ×1
osx-leopard ×1