- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个基于文档的应用程序,并且我想使用文档包作为我的文件格式。为此,我需要重写的 NSDocument 方法似乎是-writeToURL:ofType:error:
.
有时它会起作用,但仅在某些条件下有效。例如,此代码有效:
- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError
{
NSFileWrapper *wrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil];
[wrapper addRegularFileWithContents:[@"please work" dataUsingEncoding:NSUTF8StringEncoding] preferredFilename:@"foobar"];
[wrapper writeToURL:absoluteURL options:NSFileWrapperWritingAtomic originalContentsURL:nil error:outError];
NSDictionary *metadata = [NSDictionary dictionaryWithObject:@"0.1" forKey:@"Version"];
NSURL *mdURL = [NSURL fileURLWithPath:[[absoluteURL path] stringByAppendingPathComponent:@"SiteInfo.plist"]];
[metadata writeToURL:mdURL atomically:YES];
return YES;
}
但是,这段代码没有(与上面相同,但去掉了 NSFileWrapper 位):
- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError
{
NSDictionary *metadata = [NSDictionary dictionaryWithObject:@"0.1" forKey:@"Version"];
NSURL *mdURL = [NSURL fileURLWithPath:[[absoluteURL path] stringByAppendingPathComponent:@"SiteInfo.plist"]];
[metadata writeToURL:mdURL atomically:YES];
return YES;
}
上面的代码将这个神秘的错误放入控制台(“Lithograph”是我的应用程序的名称,“.site”是包扩展名):
NSDocument could not delete the temporary item at file://localhost/private/var/folders/qX/qXL705byGmC9LN8FpiVjgk+++TI/TemporaryItems/(A%20Document%20Being%20Saved%20By%20Lithograph%207)/Untitled%20Site.site. Here's the error:
Error Domain=NSCocoaErrorDomain Code=4 UserInfo=0x10059d160 "“Untitled Site.site” couldn’t be removed."
我是否必须在原始 URL 中写入一些内容才能将其他文件添加到包中?
最佳答案
如果您要从文档创建文件包装器,则应使用 -fileWrapperOfType:error:
而不是 -writeToURL:ofType:error:
。
您将为 Info.plist 文件构造一个文件包装器,将其插入文件夹文件包装器,然后返回文件夹包装器:
- (NSFileWrapper *)fileWrapperOfType:(NSString *)typeName error:(NSError **)outError
{
NSFileWrapper *wrapper = [[[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil] autorelease];
[wrapper addRegularFileWithContents:[@"please work" dataUsingEncoding:NSUTF8StringEncoding] preferredFilename:@"foobar"];
NSDictionary *metadata = [NSDictionary dictionaryWithObject:@"0.1" forKey:@"Version"];
NSString* errorDescription = nil;
NSData* dictionaryData = [NSPropertyListSerialization dataFromPropertyList:metadata format:NSPropertyListBinaryFormat_v1_0 errorDescription:&errorDescription];
if(!dictionaryData)
{
if(!errorDescription)
errorDescription = @"Unknown error";
if(outError)
*outError = [NSError errorWithDomain:@"YourErrorDomain" code:69 userInfo:[NSDictionary dictionaryWithObject:errorDescription forKey:NSLocalizedDescriptionKey]];
return nil;
}
[wrapper addRegularFileWithContents:dictionaryData preferredFilename:@"Info.plist"];
return wrapper;
}
关于cocoa - NSDocument 和 writeToURL :ofType:error: 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1584119/
我有以下代码,用于检测 Silverlight 应用程序中某个点下方的所有元素 然后将它们过滤为仅特定类型的那些 - CardButton IEnumerable elementsBeneathCur
如何通过相关属性中的“OfType”过滤 LINQ 查询? 示例:我在 OrderLines 集合中搜索包含匹配的 productID 列表中的产品的订单行。我想使用 contains 来完成这个:
重要 问题不是“Queryable.OfType 有什么作用,而是“我在那里看到的代码是如何实现的?” 反射(reflection) Queryable.OfType,我看到(经过一些清理):
我正在尝试使用 ngrx/store 开发应用程序,但出现错误。无法弄清楚问题。有人帮帮我吗? 这是我的错误: ERROR in src/app/store/effects/authenticatio
在TPH继承中,这之间有什么区别吗: context.Firms.OfType() 还有这个: context.Firms.Where(item => item is RedFirm); 在性能方面?
我正在尝试过滤我的实体中的派生类,但出现异常。 var filtered = db.PersonSet.OfType(). Where(person =>person.G
我有一行代码可以清除表单中的所有标签 Controls.OfType().ToList().ForEach(p => p.Visible = false); 现在我需要从该列表(如标题标签)中排除特定
我有以下词典: public Dictionary Items; 现在我需要获取字典项的值 来自特定类型的所有项。 (例如“int”) var intValues = Items.OfType>根本行
在我的 WPF 应用程序中,我有以下行: var windowList = Application.Current.Windows.OfType().ToList(); 这将返回 2 个结果。这些结果
我正在努力理解我可以做以下事情。我有一个带有静态列表的抽象类,它应该存储任何派生类的对象。同样在抽象类中,我有方法应该只处理调用派生类的对象。但是我该怎么做呢? GetType() 或 typeof(
考虑使用以下代码行: List listOfDivs = this.clientGrid.Controls.OfType() .To
假设我有一个父实体“公司”和一些继承自公司的子实体。假设子项名为“RedFirm”、“GreenFirm”和“BlueFirm”,如果我只想检索 RedFirm 和 GreenFirm 实例,查询 F
我有一个 linq 查询,它选择占位符中的所有文本框并使用结构将它们添加到列表中。我需要扩展此功能以同时获取 DropDownList 的选定值我很确定我做错了,因为当我调试该方法时,列表计数为 0。
我发誓这没有意义。 鉴于我有这个 HttpRouteCollection从 Web API,我根据一些自定义路由类型进行过滤,特别是 IAttributeRoute .我用 httpRoutes.Of
我想过滤 List 中的对象使用它们的类型,使用 OfType<>。 我的问题是,有些对象是通用接口(interface)类型,但它们没有自己的公共(public)继承接口(interface)。 我
除了可读性之外,以下 linq 查询之间的区别是什么以及我何时以及为什么要使用一个而不是另一个: IEnumerable items = listOfItems.Where(d => d is T).
OfType() 是如何工作的? 我读了this link关于发生了什么,但 LINQ 提供程序究竟如何知道如何获取与指定类型匹配的所有对象。我知道 IQueryable “链接”请求,然后在 Get
我有一个包含很多项目的 MenuStrip,我正在尝试让它们都订阅,所以我正在尝试做 menuStrip1.Items.OfType();对于每一个我都这样做: menuitem.Click += n
...或者,我如何通过它们实现的接口(interface)过滤一系列类? 假设我有一个继承自 Foo 的对象序列,即 seq。 .换句话说,我的序列将包含 Foo 的四个不同子类中的一个或多个。 每个
我有类似于以下的类: public abstract class Base { } public class Concrete : Base { } public class Cement : Bas
我是一名优秀的程序员,十分优秀!