如何创建以高优先级运行的自定义串行队列?
现在我正在使用,myQueue = dispatch_queue_create("com.MyApp.MyQueue", NULL);
但这似乎不允许设置优先级?
在xcode中,我有一个运行ruby脚本的"运行脚本"构建阶段.但是,似乎xcode正在尝试使用默认的mac 1.8版本的ruby而不是最新版本来运行它.鉴于该脚本需要一个gem,它失败并出现require错误并且错误中的路径指向
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/
显然,那条道路上的1.8让我怀疑.
如果我打开终端并运行命令,ruby -v
那么它正确返回2.0.0p0
我安装的并使用RVM设置为默认值.
我如何让Xcode在正确的位置看?或者我错误地解释了这个错误?
更新:
为了提供更多信息,这里是编译器抛出的确切错误:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- json (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /Volumes/Macintosh HD/Documents/Projects/WesternMusicElements/WesternMusicElements/Ruby/NoteCollectionParser.rb:9
Command /bin/sh failed with exit code 1
Run Code Online (Sandbox Code Playgroud) 我有一个NSTableView
被设置为'基于视图',并且在每个内部都有NSTableCellView
一个NSButton
和一个NSTextField
.
正在从阵列控制器正确填充文本字段.按钮显示正确,但我在解决如何连接点击操作时遇到问题.
我认为这可以通过控制 - 从NSButton
IB中拖动到我的控制器中的这个简单方法(在本例中是NSDocument
子类):
- (IBAction)testAction:(NSButton *)sender {
NSLog(@"Test action");
}
Run Code Online (Sandbox Code Playgroud)
它连接良好但永远不会被解雇.任何想法为什么这是或如何解决它?
我NSManagedObjectContext
有一套NSPrivateQueueConcurrencyType
我在应用程序中大部分时间都在使用的设置.
除此之外,我创建了一个NSMainQueueConcurrencyType
与可可绑定一起使用的子MOC (我听说绑定不适用于私有队列MOC).我已经绑定了一些ObjectController
s和一个ArrayController
这个子环境.我非常希望将子进程保留在主队列中,而不是交换MOC队列类型.
当我通过UI更改绑定对象时,更改不会传播到父上下文.当我对父上下文进行更改时,它们不会过滤到Object/ArrayControllers.
我怎样才能做到这一点?是否有一个设置可以告诉Object/ArrayControllers适当地刷新它们的上下文并在它们进行更改时保存它?
cocoa core-data objective-c cocoa-bindings nsmanagedobjectcontext
我正在尝试创建NSManagedObjectContext的新实例,以便我可以在主要线程之外的线程中执行获取请求.据我所知,每个线程都需要它自己的实例,尽管它们可以共享商店.
我的应用是基于核心数据文档的应用.
在这里读了一下我有这个代码:
NSManagedObjectContext *managedObjectContextForThread = nil;
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel];
if (coordinator != nil) {
managedObjectContextForThread = [[NSManagedObjectContext alloc] init];
[managedObjectContextForThread setPersistentStoreCoordinator:coordinator];
[managedObjectContextForThread setUndoManager:nil];
}
Run Code Online (Sandbox Code Playgroud)
它运行但是当我执行提取时我没有得到任何结果,我怀疑是因为NSPersistentStoreCoordinator未正确设置.
我该如何设置商店协调员与我的主商店合作?或者还有其他我在这里缺少的东西?
我有一个当前构建在Core Data上的应用程序,并且具有多个NSManagedObjectContexts的多个线程.它是一个音乐应用程序,因此总是在后台线程上运行的东西不需要干扰主线程,反之亦然.
到目前为止,我一直在慢慢地解决所有类型的死锁和线程安全问题,但坦率地说,我试图保持MOC同步并让它们不阻塞线程,没有任何访问实体已被删除等等. .
我的问题是:如果我放弃Core Data并且只是创建一些自定义的NSObject来跟踪属性会使这些问题变得更简单吗?是否可以从多个线程访问NSObjects(不会导致死锁等),这样我就不必维护多个副本并同步它们了?或者我还会面临类似的挑战吗?
我对Objective-c很新,所以我真的在寻找更简单的解决方案,而不是最复杂的解决方案.这种东西的任何链接到良好的设计模式也赞赏!