方便实现逻辑功能的代码
2009-06-11 20:07
375 查看
通常我们可以使用NSPredicate来进行逻辑计算,不过一般来说代码都很长。
比如考虑,要实现如下逻辑:(A or B) but not (A and B) 需要用很长的一堆代码来实现:
NSPredicate *xor = [NSCompoundPredicate andPredicateWithSubpredicates:
[NSArray arrayWithObjects:
[NSCompoundPredicate orPredicateWithSubpredicates:
[NSArray arrayWithObjects: a, b, nil]
],
[NSCompoundPredicate notPredicateWithSubpredicate:
[NSCompoundPredicate andPredicateWithSubpredicates:
[NSArray arrayWithObjects: a, b, nil]
]
],
nil
]
];
不过如果用了本文介绍的方法,就会简单地变成下面的代码:
NSPredicate *xor = [[a or: b] and: [[a and: b] not]];
同样地,你还可以使用xor运算:
NSPredicate *xor = [a xor: b];
本文介绍的代码是一个Foundation Kit的NSPredicate的扩展,作者是Jonathan Grynspan, 你可以在这里下载到这个代码。
比如考虑,要实现如下逻辑:(A or B) but not (A and B) 需要用很长的一堆代码来实现:
NSPredicate *xor = [NSCompoundPredicate andPredicateWithSubpredicates:
[NSArray arrayWithObjects:
[NSCompoundPredicate orPredicateWithSubpredicates:
[NSArray arrayWithObjects: a, b, nil]
],
[NSCompoundPredicate notPredicateWithSubpredicate:
[NSCompoundPredicate andPredicateWithSubpredicates:
[NSArray arrayWithObjects: a, b, nil]
]
],
nil
]
];
不过如果用了本文介绍的方法,就会简单地变成下面的代码:
NSPredicate *xor = [[a or: b] and: [[a and: b] not]];
同样地,你还可以使用xor运算:
NSPredicate *xor = [a xor: b];
本文介绍的代码是一个Foundation Kit的NSPredicate的扩展,作者是Jonathan Grynspan, 你可以在这里下载到这个代码。
相关文章推荐
- 方便实现逻辑功能的代码
- Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
- ViewPager实现自动翻页功能 --转载出处找不到了,根据自己的理解写个随笔方便以后的记忆以及代码的共享,感谢给我启发的那位高手--第一次写博客哈
- Linux下遍历文件夹功能实现代码——20110802
- 天气预报抓取、解析(传递抓取的info参数)功能模块实现(代码)
- 文件的打开保存另存为功能代码实现
- Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载]
- 基于web的QQ实现代码(asp) ——在网叶(web)上实现简单QQ功能(转)
- 仿滴滴打车底部滑动条代码逻辑实现
- Android工具HierarchyViewer 代码导读(1) -- 功能实现演示
- java简单实现复制 粘贴 剪切功能代码分享
- Android应用自动更新功能的代码实现
- Webdriver控制翻页控件,并实现向前向后翻页功能,附上代码,仅供参考,其他类似日期控件的功能可以自己封装
- JavaScript 实现完美兼容多浏览器的复制功能代码
- UDP实现简单的群聊功能代码示例
- Python使用sftp实现上传和下载功能(实例代码)
- 基于 Swoole 的微信扫码登录功能实现代码
- 下拉菜单点击实现连接跳转功能的js代码
- C#实现文件上传及文件下载功能实例代码