Spotlight简单介绍及使用
来源:互联网 发布:淘宝号怎么实名认证呢 编辑:程序博客网 时间:2024/06/05 22:57
看了苹果关于Spotlight的官方文档,根据官方目录,简单阐述以下几个问题:
1:What is Spotlight?
使用metadata来提供一种新的整理和获取电脑文件信息的方式,metadata可以包括文件的作者,或者修改时间,创建时间,关键字或者其他更多信息
2:Where Does Metadata Come From?
一些metadata的信息入时间,类型或者路径名是很简单通过文件能拿到的,一些文件的信息就镶嵌在了文件中,这就需要你提供一个Spotlight importer(一个插件),苹果本身提供了标注你的文件类型,例如RTF, JPEG, Mail, PDF and MP3等,如果你定义自己的文件就需要自己创建metadata importer才能用于Spotlight查询
3:Searching Metadata in your Applications
后面将会有实例
4:Not Only About Search
Spotlight不仅仅只作查询相关,还能提供更多文件相关的信息,例如图片的大小,像素,色彩等,电影的长度,以及更多信息
5:How Does Spotlight Work?
后台获取数据存储索引,当query开始,就开始查询索引匹配文件,如苹果官方图例:
然后开始匹配:指定查询的路径,查询的条件,或者返回时生成的组,排序等等
如果数据发生改变,那么Spotlight就会发送通知出来,程序根据查询结果也就能够立即作出响应
6:Security and Privacy Considerations
可以直接在设置中将不要Spotlight显示的添加进去
Spotlight简单使用
不说了,直接上最简单的例子
- (void)spotlightScan
{
self.query = [[[NSMetadataQueryalloc] init]autorelease];
//设置查找条件
NSPredicate *TypePredict = [NSPredicatepredicateWithFormat:@"kMDItemContentTypeTree == 'com.apple.application-bundle'"];
self.query.predicate = TypePredict;
//设置查找路径
NSArray *paths = @[NSHomeDirectory()];
self.query.searchScopes = paths;
//添加观察者
[[NSNotificationCenterdefaultCenter] addObserver:self
selector:@selector(searchFinished:)
name:NSMetadataQueryDidFinishGatheringNotification
object:query];
//判断query
BOOL result =[querystartQuery];
if (!result) {
//
}
}
- (void)searchFinished:(NSNotification *)noti
{
[querystopQuery];
for (NSMetadataItem *mdItemin self.query.results) {
// do something you wanna do
}
//move notification
[[NSNotificationCenterdefaultCenter]removeObserver:selfname:NSMetadataQueryDidFinishGatheringNotificationobject:query];
}
- Spotlight简单介绍及使用
- iOS 9 Spotlight简单使用
- iOS9中spotlight的简单使用
- Handler介绍及简单使用
- Eigen介绍及简单使用
- CString简单介绍及使用
- Eigen介绍及简单使用
- Eigen介绍及简单使用
- FreeMarker简单使用及介绍
- Ajax简单介绍及使用
- Eigen介绍及简单使用
- ThreadPoolExecutor简单介绍及使用
- Fresco的简单介绍及简单使用
- Spotlight on oracle 使用
- Spotlight on oracle 使用
- Spotlight on oracle 使用
- Spotlight on oracle 使用
- Spotlight 监控工具使用
- Java 观察者模式的浅析
- S3C2440系统时钟
- 初识jQuery
- 物体的加速运动(只受重力影响)
- HandBrakeCLI命令(google翻譯)
- Spotlight简单介绍及使用
- 连载:面向对象葵花宝典:思想、技巧与实践(1) - 程序设计思想的发展
- Intel 编译Boost库
- centos使之支持中文
- Linux代码性能检测利器(五)-OProfile分析结果误区
- iphone开发之用lipo合并模拟器库和真机库,发布一个通用的静态库
- select poll epoll比较
- Android笔试题
- 用GDB调试程序