Tag: 核心基础

使用NSURLtesting文件存在

Snow Leopard引入了很多新的方法来使用NSURL对象来引用文件,而不是path名或Core Services的FSRefs。 但是,有一个任务我无法find基于URL的方法:testing文件是否存在。 我正在寻找一个基于URL的版本- [NSFileManager fileExistsAtPath: ] 。 像这种方法一样,如果URL描述了任何内容,不pipe是普通文件,目录还是其他内容,都应该返回YES 。 我可以尝试查找各种资源值 ,但是如果文件不存在,它们中的任何一个都不能保证不存在,如果它们中的一些(例如, NSURLEffectiveIconKey )可能是昂贵的。 我可以使用NSFileManager的fileExistsAtPath: ,但如果有一个更现代的方法,我宁愿使用它。 在Cocoa,CF或Core Services中是否有简单的方法或函数来保证/logging给定的文件(或文件引用)URL是否指向存在的文件系统对象?

iOS启动后台线程

我的iOS设备上有一个小的sqlitedb。 当用户按下button时,我从sqlite获取数据并将其显示给用户。 这个提取部分我想在后台线程中做(不要阻塞UI主线程)。 我这样做是这样 – [self performSelectorInBackground:@selector(getResultSetFromDB:) withObject:docids]; 提取和一点处理后,我需要更新用户界面。 但是,由于(作为一个好的做法),我们不应该从后台线程执行UI更新。 我就像这样在mainthread上调用一个selector – [self performSelectorOnMainThread:@selector(showResults) withObject:nil waitUntilDone:NO]; 但我的应用程序在第一步崩溃。 即开始一个后台线程。 这不是在iOS中启动后台线程的方法吗? 更新1:后[self performSelectorInBackground….我得到这个stacktrace,没有任何信息是如此的 – 更新2:我甚至尝试过,像这样开始后台线程 – [NSThread detachNewThreadSelector:@selector(getResultSetFromDB:) toTarget:self withObject:docids]; 但我仍然得到相同的堆栈跟踪。 只是为了澄清,当我在主线程上执行这个操作时,一切都运行平稳… 更新3这是我想从后台运行的方法 – (void)getResultSetFromDB:(NSMutableArray *)toProceessDocids { SpotMain *mirror = [[SpotMain alloc] init]; NSMutableArray *filteredDocids = toProceessDocids; if(![gMediaBucket isEqualToString:@""]) filteredDocids = [mirror FetchDocIdsForMediaBucketWithDocID:filteredDocids mBucket:gMediaBucket numRes:-1]; if(![gMediaType isEqualToString:@""]) […]

在iOS上从Swift生成一个UUID

在我的iOS Swift应用程序中,我想要生成随机的UUID( GUID )string作为表键使用,这个片段似乎工作: let uuid = CFUUIDCreateString(nil, CFUUIDCreate(nil)) 这安全吗? 或者,有没有更好的(推荐)方法?