小编Kev*_*vin的帖子

目标C - 从调试器错误中获取行号或完整堆栈跟踪?

是否可以从调试器获取源代码的行号(或任何有助于调试问题所在的位置),以显示问题的来源?

我收到一个错误:

-[NSCFArray objectAtIndex:]: index (-1 (or possibly larger)) beyond bounds (9)
Run Code Online (Sandbox Code Playgroud)

这显然意味着我在某些时候会超出界限,但是如果有可能我想获得更多信息来帮助我解决问题.

我正在设置断点并尝试逐行完成程序,但这是一个繁琐的过程.谢谢!

xcode cocoa objective-c

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

NSMutableArray排序 - 不区分大小写

NSMutableArray按如下方式排序:

    NSSortDescriptor *sortDescriptor;
    sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:str_key ascending:bool_asc_desc] autorelease];
    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
    NSArray *sortedArray;
    sortedArray = [ads_printers_array sortedArrayUsingDescriptors:sortDescriptors];
Run Code Online (Sandbox Code Playgroud)

问题是这是区分大小写的,我想让它不区分大小写.我怎样才能做到这一点?我尝试阅读文档,发现这样的事情:

sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:str_key ascending:bool_asc_desc selector: @selector(caseInsensitiveCompare)] autorelease];
Run Code Online (Sandbox Code Playgroud)

但是,我不知道我应该在selector参数中添加什么.谢谢!

cocoa objective-c nssortdescriptor

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

在NSView - Cocoa中以编程方式创建NSScrollView

我有一个NSView类,它负责在nib文件中创建的自定义视图.

现在我想将NSScrollView添加到自定义视图,但我需要以编程方式进行,而不是使用Interface Builder(嵌入滚动视图).

我找到了这段代码:

NSView *windowContentView = [mainWindow contentView];
NSRect windowContentBounds = [windowContentView bounds];
scrollView = [[NSScrollView alloc] init];
[scrollView setBorderType:NSNoBorder];
[scrollView setHasVerticalScroller:YES];
[scrollView setBounds: windowContentBounds];
[windowContentView addSubview:scrollView];
Run Code Online (Sandbox Code Playgroud)

假设我将上面的变量'mainWindow'和'scrollView'声明为IBOutlets,我将如何将它们连接到Interface Builder中的适当组件?这样做是否有意义?

或者是否有更好的方法以编程方式添加滚动视图?

PS我无法以通常的方式连接它们因为我无法从Interface Builder创建NSObject对象,或者使用文件所有者.

cocoa objective-c nsscrollview

8
推荐指数
3
解决办法
7282
查看次数

Xcode 4.3不支持Icon Composer?

我正在尝试找到Icon Composer,它应该是作为Xcode的一部分下载的,但我找不到它,无论是在应用程序中还是在聚光灯下.

任何想法,或者我必须单独下载?如果是这样,从何而来?我尝试在App Store中寻找它,但没有找到.

编辑:如果有帮助,我正在使用Xcode 4.3.2.

xcode cocoa xcode4.3

7
推荐指数
3
解决办法
3752
查看次数

Cocoa - 如何格式化XML文件

有没有办法在编程时以正确的方式格式化XML文件?

例如,如果我使用此代码创建一个简单的XML文件:

NSXMLElement *fallback_driver = [[NSXMLElement alloc] initWithName:@"fallback-driver"];

NSXMLElement *folder = [[NSXMLElement alloc] initWithName:@"folder"];
[folder setStringValue:[ads_make objectValueOfSelectedItem]];
NSXMLElement *filename =[[NSXMLElement alloc] initWithName:@"filename"];
[filename setStringValue:ads_driver_name_selected];

[fallback_driver addChild:folder];
[fallback_driver addChild:filename];

NSXMLElement* rootNode = [ads_user_printxml rootElement];
[rootNode addChild:fallback_driver];
Run Code Online (Sandbox Code Playgroud)

当这个运行时,我想按照下图中的注释部分输出,而不是实际的XML(没有注释).

xml代码

我如何以这种方式格式化XML文件?谢谢!

PS

谢谢你的答案.但是,我想将我拥有的NSXMLDocument转换为NSData以便保存...

我在尝试

NSData *newData = [[ads_user_printxml XMLDataWithOptions:NSXMLNodePrettyPrint]XMLData];
Run Code Online (Sandbox Code Playgroud)

但是我收到一条警告,"'NSData'可能无法响应'-XMLData',在我添加XMLDataWithOptions之前,它工作得很好.我也尝试了'XMLStringWithOptions'方法(如你所说 - 但是认为数据更多适当的),但产生了相同的警告.

有任何想法吗?非常感谢!

cocoa objective-c nsxml

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

使NSOpenPanel打开自定义目录

有什么方法可以将URL传递到系统上的文件夹,该文件夹应该是NSOpenPanel打开的默认窗口?谢谢!

更新:

NSOpenPanel *ads_open = [[NSOpenPanel openPanel] retain];
[ads_open setDirectoryURL:"file://localhost/System/Library/CoreServices/prndrv"];
Run Code Online (Sandbox Code Playgroud)

我正在使用上面的代码,这是我要默认打开的目录。但是,我得到的默认窗口仍然是我访问的最后一个窗口,而不是我指定的窗口。如何访问URL目录?

cocoa objective-c nsopenpanel

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

Cocoa中的NSScrollView

我试图让一个带有NSTextField的NSSrollView工作,但是滚动条似乎没有响应我编码的任何东西.

我将NSScrollView声明为IBOutlet,将其添加为属性然后合成它.但是,这无济于事.

当我调整大小时,滚动条会出现,但它们目前不起作用.

我曾试图使用苹果文档,但再次,没有喜悦.

有帮助吗?谢谢!

cocoa objective-c nsscrollview

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

可可-查找NSTabView何时更改了其选项卡

我如何找出NSTabViewItem何时更改,即用户已更改NSTabView的视图。

理想情况下,我想生成一个通知,但是任何解决方案都将受到欢迎。

谢谢!

cocoa objective-c nstabview nsnotification

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

目标C - 使方法只调用一次

如果我有这个方法:

-(void) methodName
{
    action1;
    action2;
    [self methodName];
}
Run Code Online (Sandbox Code Playgroud)

我希望[self methodName]调用只进行一次,因此连续两次调用的方法.可以这样做吗?不确定我应该在哪些文档中查找.

每当调用方法'methodName'时,当action1和action2完成时,它应该再次调用自身,但只调用一次.在我编写的示例代码中完成的方式将永远进行(我猜).

cocoa objective-c

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

在变量上创建通知

我如何设置我的代码,以便我在整数变量上设置一个监听器,这样当值改变时(该值绑定到一个对象),通知被调用?谢谢!

cocoa notifications objective-c

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

NSMutableArray - 对自定义类进行排序

可能重复:
如何使用自定义对象对NSMutableArray进行排序?

我有一个自定义类,其中一个值是名称.想象一下这个班叫做Person.我想根据name变量对这些值进行排序,但是我保留在NSMutableArray中,但是:

[testarray sortUsingSelector:@selector(compare:)];
Run Code Online (Sandbox Code Playgroud)

只会只使用一个字符串数组.

我试图找出如何按字母顺序排列数组:

Person *person;
person = [array objectAtIndex:0];
[person name];

Person *person;
person = [array objectAtIndex:1];
[person name];
Run Code Online (Sandbox Code Playgroud)

我该如何比较两者?谢谢!

cocoa objective-c nsmutablearray

-2
推荐指数
1
解决办法
713
查看次数