如果实体总是在通过合并相关模型创建的NSManagedObjectModel中使用,是否可以建模在单独的NSManagedObjectModel中定义的实体之间的关系?
例如,假设模型1定义Foo具有关系(一对一)toBar的实体,模型2定义Bar具有关系(一对一)的实体toFoo.我将使用-[NSManagedObjectModel mergedModelFromModels]合并模型1和模型2 来构建CoreData堆栈.有没有办法在数据建模器中或以编程方式定义这些关系,以便它们的行为就像它们是模型内关系一样?
macos cocoa core-data nsmanagedobject nsmanagedobjectcontext
在Xcode中开发MacRuby应用程序时,有没有使用MacRuby调试器macrubyd?
据我所知,即使从终端也不能这样做.我已经想到了kludgy的工作,但我想在我烧掉任何时间之前仔细检查一下情况.
使用MacRuby 0.10和Xcode4.
它是在主视图显示之前调用的
我们可以随时打电话吗?
我有一个拥有书籍和作者的核心数据项目.在数据模型中,作者与书籍和书籍有很多关系,与作者有1-1的关系.我正在尝试拉出所有没有作者的书籍.无论我如何尝试,都不会返回任何结果.在我的谓词中,我也试过= NIL,== nil,== NIL.任何建议,将不胜感激.
// fetch all books without authors
- (NSMutableArray *)fetchOrphanedBooks {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Book" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"author == nil"];
[fetchRequest setPredicate:predicate];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSString *sectionKey = @"name";//nil;
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext
sectionNameKeyPath:sectionKey cacheName:nil];
BOOL success = [aFetchedResultsController performFetch:nil];
NSMutableArray *orphans = nil;
// this is …Run Code Online (Sandbox Code Playgroud) 我正在开发一个iphone应用程序,我与Group和Contact对象建立了一个简单的多对多关系.一个组可以有多个联系人,联系人可以属于多个组.
我正在尝试使用以下谓词选择特定联系人不属于的所有组.(注意:uid字段是我用来唯一标识联系人实体的字符串字段)
[NSPredicate predicateWithFormat:@"ALL contacts.uid != %@", contactUId]
Run Code Online (Sandbox Code Playgroud)
根据Apple的谓词编程指南,ALL聚合操作是有效的,但是我得到以下异常,表明这是一个不受支持的谓词:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported predicate (null)'
Run Code Online (Sandbox Code Playgroud)
我可以使用类似的谓词来使用此谓词选择联系人已经属于的所有组,因此看起来我已正确定义了所有关系和字段.
[NSPredicate predicateWithFormat:@"ANY contacts.uid == %@", contactUId]
Run Code Online (Sandbox Code Playgroud)
在构造谓词时抛出异常,而不是在我尝试实际执行获取请求时抛出异常,因此它似乎与我使用的语法相关,而不是与Core Data支持相关.我究竟做错了什么?
我一直在学习coredata,通过制作许多基于xcode Navigation控制器模板的简单测试应用程序并选中"使用coredata".
App委托中的awakeFromNib方法一直是我的问题来源,因为我正在向控制器添加其他视图并更改加载顺序,因此RootViewController可能是第二个或第三个选择.
我已经弄清楚awakeFromNib正在做什么,我已经删除了它,因此app委托不再绑定到任何特定的视图.(所以当我想加载RootViewController时,我会将其作为常规视图加载,并使用自己的viewDidLoad为视图初始化managedObjectContext).
我的问题:在AppDelegate中使用awakeFromNIb是否有性能提升或其他好处?或者它只是我从viewDidLoad方法做同样的事情的另一种方式?
我遇到了一个令人困惑的Core Data错误,我在尝试保存一些数据时收到以下错误消息:
CoreData: error: (1) I/O error for database at /var/mobile/Applications/5D3C0F3C-E097-43BF-887B-2870B1148226/Documents/Database.sqlite. SQLite error code:1, 'table Z_1RELATEDCARDS has no column named FOK_REFLEXIVE'
Core Data: annotation: -executeRequest: encountered exception = I/O error for database at /var/mobile/Applications/5D3C0F3C-E097-43BF-887B-2870B1148226/Documents/Database.sqlite. SQLite error code:1, 'table Z_1RELATEDCARDS has no column named FOK_REFLEXIVE' with userInfo = {
NSFilePath = "/var/mobile/Applications/5D3C0F3C-E097-43BF-887B-2870B1148226/Documents/Database.sqlite";
NSSQLiteErrorDomain = 1;
}
Run Code Online (Sandbox Code Playgroud)
对于某些上下文:我的数据模型中没有列"反身".我有一个实体,卡片,它有一个属性,relatedCards,这是卡片项目之间的多对多关系.我很困惑这个错误所指的是什么,并且非常感谢任何帮助.
UPDATE
根据评论中的一个很好的建议,我使用参数在iOS模拟器中运行应用程序-com.apple.CoreData.SQLDebug 3并收到以下响应:
CoreData: annotation: Connecting to sqlite database file at "/Users/jason/Library/Application Support/iPhone Simulator/5.0/Applications/4EE6D378-A946-4EBF-9849-F7D2E58F2776/Documents/Database.sqlite"
CoreData: sql: pragma cache_size=200
CoreData: sql: BEGIN EXCLUSIVE …Run Code Online (Sandbox Code Playgroud) 当我删除包含图像的托管对象时,在外部记录中存储为可转换的值,然后我崩溃并出现此错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage _deleteExternalReferenceFromPermanentLocation]: unrecognized selector sent to instance 0xde49360'
Run Code Online (Sandbox Code Playgroud) 鉴于最简单的swift文件:
println("lol")
Run Code Online (Sandbox Code Playgroud)
在命令行上运行它xcrun swift -i lol.swift或者编译成可执行文件xcrun swift lol.swift -o lol是很简单的,但是如何为emscripten进行简单的概念验证呢?
我之前没有使用过emscripten,但是在http://kripken.github.io/emscripten-site/docs/getting_started/Tutorial.html上使用C++获得了一个hello world示例,并且想要编译我的Swift代码.
我试过了
xcrun swift lol.swift -emit-bc -o lol.bc
emcc lol.bc
Run Code Online (Sandbox Code Playgroud)
但是得到
Value: %1 = call { i8*, i64, i64 } @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp17numberOfCodeUnitsBw_SS(i8* bitcast ([4 x i16]* @0 to i8*), i64 3)
LLVM ERROR: Unrecognized struct value
Traceback (most recent call last):
File "/Users/glen/Downloads/emsdk_portable/emscripten/1.16.0/emcc", line 1540, in <module>
shared.Building.llvm_opt(final, link_opts)
File "/Users/glen/Downloads/emsdk_portable/emscripten/1.16.0/tools/shared.py", line 1267, in llvm_opt
assert os.path.exists(target), 'Failed to run llvm optimizations: ' + …Run Code Online (Sandbox Code Playgroud) 我需要能够在ERB中格式化未打印的逻辑行,而不会影响模板的最终文本输出.在这一点上,我认为ERB不支持这种逃避.
这是我的第一个主要Ruby项目.我正在编写代码生成器.我的模板将包含大量的条件和枚举.为了使模板可读和可维护,我需要能够格式化逻辑代码和注释,而不会扭曲最终输出.
例如假设我想要这个输出:
Starting erbOutput
1
2
3
4
Ending erbOutput
Run Code Online (Sandbox Code Playgroud)
我天真地写了这样的模板:
require 'erb'
h=<<H
Starting erbOutput
<%# comment %>
<%5.times do |e|%>
<%=e.to_s %>
<%end %>
<%# comment %>
Ending erbOutput
H
s=ERB.new(h).result
puts s
Run Code Online (Sandbox Code Playgroud)
......但这会产生
Starting erbOutput
0
1
2
3
4
Ending erbOutput
Run Code Online (Sandbox Code Playgroud)
直印:
"Starting erbOutput\n\n\n0\n\n1\n\n2\n\n3\n\n4\n\n\nEnding erbOutput\n"
Run Code Online (Sandbox Code Playgroud)
...清楚地表明逻辑和注释行的换行符包含在ERB输出中.
我可以通过将模板塞入这种笨拙的形式来产生所需的输出:
h=<<H
Starting erbOutput<%# comment %>
<%5.times do |e|%><%=e.to_s %>
<%end %><%# comment %>Ending erbOutput
H
Run Code Online (Sandbox Code Playgroud)
...但我不认为我可以在没有更多可读格式的情况下调试和维护模板.我的一些条件和枚举深达三个级别,我评论很多.在一行或两行上填写所有内容会使模板完全无法读取.
有没有办法逃避或以其他方式抑制ERB中注释行的逻辑行返回?其他常用的Ruby模板模块是否能更好地处理这个问题?
如果它很重要,我在MacOS 10.6.7上使用MacRuby 0.10(实现Ruby 1.9.2).
core-data ×5
iphone ×4
ios ×3
macruby ×2
nspredicate ×2
awakefromnib ×1
cgcontext ×1
cocoa ×1
debugging ×1
delegates ×1
emscripten ×1
erb ×1
formatting ×1
ios5 ×1
javascript ×1
llvm ×1
macos ×1
many-to-many ×1
predicate ×1
ruby ×1
sqlite ×1
swift ×1
uiview ×1
views ×1
xcode4 ×1