我有一个NSString对象数组,我必须通过降序排序.
由于我没有找到任何API来按降序对数组进行排序,我通过以下方式接近.
我为下面列出的NSString写了一个类别.
- (NSComparisonResult)CompareDescending:(NSString *)aString
{
NSComparisonResult returnResult = NSOrderedSame;
returnResult = [self compare:aString];
if(NSOrderedAscending == returnResult)
returnResult = NSOrderedDescending;
else if(NSOrderedDescending == returnResult)
returnResult = NSOrderedAscending;
return returnResult;
}
Run Code Online (Sandbox Code Playgroud)
然后我使用语句对数组进行了排序
NSArray *sortedArray = [inFileTypes sortedArrayUsingSelector:@selector(CompareDescending:)];
Run Code Online (Sandbox Code Playgroud)
这是正确的解决方案?有更好的解决方案吗?
有没有一种简单的方法可以使用API获取Mac中所有硬盘的序列号?
基本上,我正在寻找硬盘的唯一标识符,我可以用它来判断硬盘是否已被我的应用程序使用(或引用).
如果有任何其他解决方案,请告诉我.
注意:我需要10.4及更高版本的此解决方案.
我想以编程方式从睡眠中唤醒系统,有什么办法可以做到这一点吗?
我已阅读以下链接:http: //developer.apple.com/mac/library/qa/qa2004/qa1340.html
这只谈到获得通知,但不确定是否有办法唤醒系统睡眠?
我很感激信息的一些线索......
更新:
根据我尝试使用IOPMSchedulePowerEvent的建议
我用过的代码:
NSCalendarDate *timeIntervalSinceNow = [NSCalendarDate dateWithTimeIntervalSinceNow:40];
IOReturn result = IOPMSchedulePowerEvent ((CFDateRef)timeIntervalSinceNow, NULL, CFSTR(kIOPMAutoWake));
Run Code Online (Sandbox Code Playgroud)
结果:
如果盖子关闭,它在MacBook中失败
我做错了什么或任何解决方案?
我想用一些颜色(图像)徽章文件和文件夹,任何想法如何实现我尝试使用图标服务,它适用于文件,但它不适用于文件夹.
我看到这种行为工作Dropbox(10.4,10.5和10.6) - 任何想法如何做到这一点?
以下对我来说非常接近,但它没有按预期工作. http://www.cimgf.com/2008/06/16/cocoa-tutorial-custom-folder-icons/
除了图标服务之外还有其他解决方案吗?
我感谢任何帮助.
我想基于finder中的某些条件为徽章文件和文件夹着色,在Mac OS X 10.6中实现此目的的方法是什么
我已经检查了这个问题:这里只讨论Snow Leopard中Finder Finder插件中的上下文菜单
我甚至检查过:http://scplugin.tigris.org/甚至他们也没有在10.6中进行颜色标记,这是待处理的任务.
在此先感谢您的帮助
我在一个使用不同的应用程序中使用了2个开源项目 - 问题是两个项目都有相同的类名和不同的实现.
根据我的理解目标C没有命名空间选项来处理范围 - 截至目前我正在重命名其中一个类及其用法,以使其在我的项目中工作.
有没有替代解决方案然后重命名?我觉得客观C缺少命名空间.
'find ./ -name *.jpg'
Run Code Online (Sandbox Code Playgroud)
我正在尝试为上述语句优化'find'命令.
在find实现中处理'-name'谓词的方法.
static boolean
pred__name __common (const char *pathname, const char *str, int flags)
{
boolean b;
char *base = base_name (pathname);
strip__trailing __slashes(base);
b = fnmatch (str, base, flags) == 0;
free (base);
return b;
}
Run Code Online (Sandbox Code Playgroud)
因为我正在寻找文件扩展名并希望避免基于正则表达式的字符串匹配,所以我替换了'b = fnmatch(str,base,flags)== 0;' 以下陈述
int strLen = strlen(base);
b = FNM_NOMATCH;
if (strLen>=4 && (str[3] == base[strLen]) &&
(str[2] == base[strLen -1]) && (str[1] ==
base[strLen-2]) && (str[0] == base[strLen-3]))
{
b = 0;
}
Run Code Online (Sandbox Code Playgroud)
在此之后我预计会有一些性能提升,但在上述变化之后我没有看到任何性能提升.
我已经进行了自签名代码协同设计 - 但不确定为什么 vm_write 失败。(我正在使用 10.6.6)
试图找出让它发挥作用所缺少的东西——我很感谢这个问题的一些帮助。
#include <mach/vm_map.h>
#include <mach/mach_traps.h>
#include <mach/mach_error.h>
int main (int argc, const char * argv[])
{
//get the task for PID
kern_return_t err;
int pid = 73002; // PID of process in the system
mach_port_name_t t;
err = task_for_pid(mach_task_self(), pid, &t);
if(0 != err)
{
printf("task_for_pid : %s",mach_error_string(err));
}
vm_address_t address;
vm_size_t size = 108;
err = vm_allocate(t,&address,size,TRUE);
if(0 != err)
{
printf("vm_allocate : %s",mach_error_string(err));
}
vm_offset_t data = pid;
mach_msg_type_number_t dataCnt = sizeof(pid); …
Run Code Online (Sandbox Code Playgroud)