小编Gir*_*ari的帖子

按降序排序数组(NSArray)

我有一个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)

这是正确的解决方案?有更好的解决方案吗?

cocoa objective-c

21
推荐指数
3
解决办法
3万
查看次数

如何从Mac硬盘获取序列号?

有没有一种简单的方法可以使用API​​获取Mac中所有硬盘的序列号?

基本上,我正在寻找硬盘的唯一标识符,我可以用它来判断硬盘是否已被我的应用程序使用(或引用).

如果有任何其他解决方案,请告诉我.

注意:我需要10.4及更高版本的此解决方案.

macos cocoa

12
推荐指数
3
解决办法
2万
查看次数

如果盖子关闭,如何以编程方式从睡眠中醒来?

我想以编程方式从睡眠中唤醒系统,有什么办法可以做到这一点吗?

我已阅读以下链接: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中失败

我做错了什么或任何解决方案?

macos cocoa objective-c

12
推荐指数
1
解决办法
4151
查看次数

如何使用cocoa标记文件和文件夹

我想用一些颜色(图像)徽章文件和文件夹,任何想法如何实现我尝试使用图标服务,它适用于文件,但它不适用于文件夹.

我看到这种行为工作Dropbox(10.4,10.5和10.6) - 任何想法如何做到这一点?

以下对我来说非常接近,但它没有按预期工作. http://www.cimgf.com/2008/06/16/cocoa-tutorial-custom-folder-icons/

除了图标服务之外还有其他解决方案吗?

我感谢任何帮助.

macos cocoa objective-c

5
推荐指数
1
解决办法
1934
查看次数

如何在OS X Finder中有条件地为文件和文件夹着色?

我想基于finder中的某些条件为徽章文件和文件夹着色,在Mac OS X 10.6中实现此目的的方法是什么

我已经检查了这个问题:这里只讨论Snow Leopard中Finder Finder插件中的上下文菜单

我甚至检查过:http://scplugin.tigris.org/甚至他们也没有在10.6中进行颜色标记,这是待处理的任务.

在此先感谢您的帮助

macos cocoa objective-c

3
推荐指数
1
解决办法
2839
查看次数

如何在同一个项目中拥有同名的2个目标C类?

可能重复:
解决Objective-C命名空间冲突的最佳方法是什么?

我在一个使用不同的应用程序中使用了2个开源项目 - 问题是两个项目都有相同的类名和不同的实现.

根据我的理解目标C没有命名空间选项来处理范围 - 截至目前我正在重命名其中一个类及其用法,以使其在我的项目中工作.

有没有替代解决方案然后重命名?我觉得客观C缺少命名空间.

cocoa objective-c

3
推荐指数
1
解决办法
2793
查看次数

'找'优化

'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)

在此之后我预计会有一些性能提升,但在上述变化之后我没有看到任何性能提升.

  1. 那是我做错了吗?
  2. 是否有更好的方法来优化"查找"以仅搜索文件扩展名?

c c++ linux

1
推荐指数
1
解决办法
134
查看次数

vm_write 返回(os/kern)无效地址

我已经进行了自签名代码协同设计 - 但不确定为什么 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)

c macos cocoa

0
推荐指数
1
解决办法
1873
查看次数

标签 统计

cocoa ×7

macos ×5

objective-c ×5

c ×2

c++ ×1

linux ×1