是否可以从调试器获取源代码的行号(或任何有助于调试问题所在的位置),以显示问题的来源?
我收到一个错误:
-[NSCFArray objectAtIndex:]: index (-1 (or possibly larger)) beyond bounds (9)
Run Code Online (Sandbox Code Playgroud)
这显然意味着我在某些时候会超出界限,但是如果有可能我想获得更多信息来帮助我解决问题.
我正在设置断点并尝试逐行完成程序,但这是一个繁琐的过程.谢谢!
我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参数中添加什么.谢谢!
我有一个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对象,或者使用文件所有者.
我正在尝试找到Icon Composer,它应该是作为Xcode的一部分下载的,但我找不到它,无论是在应用程序中还是在聚光灯下.
任何想法,或者我必须单独下载?如果是这样,从何而来?我尝试在App Store中寻找它,但没有找到.
编辑:如果有帮助,我正在使用Xcode 4.3.2.
有没有办法在编程时以正确的方式格式化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文件?谢谢!
PS
谢谢你的答案.但是,我想将我拥有的NSXMLDocument转换为NSData以便保存...
我在尝试
NSData *newData = [[ads_user_printxml XMLDataWithOptions:NSXMLNodePrettyPrint]XMLData];
Run Code Online (Sandbox Code Playgroud)
但是我收到一条警告,"'NSData'可能无法响应'-XMLData',在我添加XMLDataWithOptions之前,它工作得很好.我也尝试了'XMLStringWithOptions'方法(如你所说 - 但是认为数据更多适当的),但产生了相同的警告.
有任何想法吗?非常感谢!
有什么方法可以将URL传递到系统上的文件夹,该文件夹应该是NSOpenPanel打开的默认窗口?谢谢!
更新:
NSOpenPanel *ads_open = [[NSOpenPanel openPanel] retain];
[ads_open setDirectoryURL:"file://localhost/System/Library/CoreServices/prndrv"];
Run Code Online (Sandbox Code Playgroud)
我正在使用上面的代码,这是我要默认打开的目录。但是,我得到的默认窗口仍然是我访问的最后一个窗口,而不是我指定的窗口。如何访问URL目录?
我试图让一个带有NSTextField的NSSrollView工作,但是滚动条似乎没有响应我编码的任何东西.
我将NSScrollView声明为IBOutlet,将其添加为属性然后合成它.但是,这无济于事.
当我调整大小时,滚动条会出现,但它们目前不起作用.
我曾试图使用苹果文档,但再次,没有喜悦.
有帮助吗?谢谢!
我如何找出NSTabViewItem何时更改,即用户已更改NSTabView的视图。
理想情况下,我想生成一个通知,但是任何解决方案都将受到欢迎。
谢谢!
如果我有这个方法:
-(void) methodName
{
action1;
action2;
[self methodName];
}
Run Code Online (Sandbox Code Playgroud)
我希望[self methodName]调用只进行一次,因此连续两次调用的方法.可以这样做吗?不确定我应该在哪些文档中查找.
每当调用方法'methodName'时,当action1和action2完成时,它应该再次调用自身,但只调用一次.在我编写的示例代码中完成的方式将永远进行(我猜).
我如何设置我的代码,以便我在整数变量上设置一个监听器,这样当值改变时(该值绑定到一个对象),通知被调用?谢谢!
我有一个自定义类,其中一个值是名称.想象一下这个班叫做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 ×11
objective-c ×10
nsscrollview ×2
xcode ×2
nsopenpanel ×1
nstabview ×1
nsxml ×1
xcode4.3 ×1