所以新数据资产类允许读取“数据”,但似乎有一些内容限制?我有一个像test.csv这样的文件(这里折叠为单行查看但实际上每行1行):
½f ⅛m 1½f ¼m 2½f ⅜m 3½f ½m 4½f ⅝m 5½f ¾m 6½f ⅞m 7½f 1m 1m ½f 1⅛m 1m 1½f 1¼m 1m 2½f 1⅜m 1m 3½f 1½m 1m 4½f 1⅝m 1m 5½f 1¾m 1m 6½f 1⅞m 1m 7½f 2m
我通过TextEdit维护的文件,并且如此读取(NSData类别,但各种方法可以返回不同的固有 - 对'type',数据):
+ (id)assetWithName:(NSString *)name
{
NSDataAsset * asset = [[[NSDataAsset alloc] initWithName:name] autorelease];
NSData * data = [[[NSData alloc] initWithData:asset.data] autorelease];
NSAssert(data.length > 0, @"'%@' has zero data.length ", name);// Yoink
NSString * string = [[[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding] autorelease];
NSString * type = asset.typeIdentifier;
// default to Ascii when UTF8 doesn't work
if (!string.length)
{
string = [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease];
}
if ([@"public.xml" isEqualToString:type])
{
return [self assetBook:string];
}
else
if ([@"public.comma-separated-values-text" isEqualToString:type])
{
return [self assetCSVs:string];
}
else
{
NSLog(@"'%@' has unknown asset type %@",name,type);
return [self assetCSVs:string];
}
}
所有人都很花花公子,直到我改变了文字。
我讨厌将像“½”这样的分数存储为“1/2”,所以我采用单个字符等价替换它们。
然而,一旦这样做,断言就会触发,因此该类似乎不喜欢我的编辑。我把文件作为一个单独的字符串(上图) - 我把它拉开(-componentsSeparatedByString :)到一个数组,但也许其他人可以告诉我这个方法有什么问题?
总的来说,我赞成资产的数据混淆,但似乎有限制。
答案 0 :(得分:1)
不确定原因,但命名我的“.dat”类型的文本文件有效。
报告的资产类型是“dyn.ah62d4rv4ge80k2py”,我猜测它就像旧Finder的前几个文件字节内容一样,但这种类型对于几个不同内容的.dat文件是相同的,所以它可能与使用的方法有关