在我的BNRItem.m中,我实现了一个类方法:
#import "BNRItem.h"
@implementation BNRItem
+ (instancetype) randomItem {
// Create an immutable array of three adjectives
NSArray *randomAdjectiveList = @[@"Fluffy", @"Rusty", @"Shiny"];
//three nouns
NSArray *randomNounList = @[@"Bear", @"Spork", @"Mac"];
//random number for 0 to 2
//NOTE: NSInteger is not an object, but a type definition for "long"
NSInteger adjectiveIndex = arc4random() % [randomAdjectiveList count];
NSInteger nounIndex = arc4random() % [randomNounList count];
NSString *randomName = [NSString stringWithFormat:@"%@ %@",
randomAdjectiveList[adjectiveIndex],
randomNounList[nounIndex]];
int randomValue = arc4random() % 100;
NSString *randomSerialNumber = [NSString stringWithFormat:@"%c%c%c%c%c",
'0' + arc4random() % 10,
'A' + arc4random() % 26,
'0' + arc4random() % 10,
'A' + arc4random() % 26,
'0' + arc4random() % 10];
BNRItem *newItem = [[self alloc] initWithItenName:randomName
valueInDollars:randomValue
serialNumber:randomSerialNumber];
return newItem;
}
@end
在main.m中,我尝试调用类方法来创建BNRItem的新实例:
#import <Foundation/Foundation.h>
#import "BNRItem.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSMutableArray *items = [[NSMutableArray alloc] init];
for (int i = 0; i < 10; i++) {
//Thread 1: breakpoint 1.1
BNRItem *item = [BNRItem randomItem];
[items addObject:item];
}
for (BNRItem *item in items) {
NSLog(@"%@", item);
}
//destroy the mutable array object
items = nil;
}
return 0;
}
但是,当我运行我的应用程序时,我最终得到了以下的东西,我不明白如何调试,没有错误消息,它只是在代码中显示断点:
那么,我的代码中有什么问题?我怎样才能调试这种情况?我的意思是,我不仅在寻找如何使我当前的代码运行,而且还想知道如何调试这种情况?因为控制台没有详细说明代码中的错误信息。
答案 0 :(得分:0)
答案 1 :(得分:0)
正如其他人所说,你在代码中遇到了断点。屏幕截图中第17行的蓝色箭头是一个断点,并且旁边有刻度线,右边缘有文字,表示&#34;线程1:断点...&#34;告诉你,你已经达到了断点。
这是一个非常有用的调试工具。你应该学习如何使用它。单击另一行上的相同位置会在该行添加断点。运行程序时,如果执行了该行代码,调试器会在行运行之前停止执行,并向您显示变量的当前值,您需要查看的内容(刚刚更改的变量以及局部变量。)
如果你抓住一个蓝色断点并拖走它,它会删除它。如果单击它,它将在活动和禁用之间切换。
还有一个调试器命令行,允许您输入调试器命令以显示变量的值(甚至执行代码。)
现在,只需拖动断点即可将其删除,但请花时间学习如何使用断点和调试器的其他功能。实际上,这是IDE最强大的功能之一,如果您要作为开发人员进入初级阶段,您必须学会如何做。