从NSArray输出值

时间:2014-02-13 14:38:26

标签: ios objective-c nsarray

我只是想输出NSArray中保存的值,因为我想看看它有多大。但是,我对iOS开发和对象C都很新,所以我希望有人可以帮助我。

阵列充满了以下调用:

-(void)beaconManager:(ESTBeaconManager *)manager
     didRangeBeacons:(NSArray *)beacons
            inRegion:(ESTBeaconRegion *)region
{
    if([beacons count] > 0)
    {

    } 
}

我一直在使用嵌套if语句调用以下行,但每次调用它时,系统崩溃:

       NSLog([beacons count]);

有人可以告诉我如何显示此数组中的值以及如何访问它们吗?

5 个答案:

答案 0 :(得分:1)

您的NSLog语句应该是错误的:

NSLog(@"%d", [beacons count]);

答案 1 :(得分:1)

NSLog(@"value stored in array are %d", [beacons count]);

答案 2 :(得分:0)

尝试这样的事情

for (CLBeacon b in beacons)
{
NSLog(@"uuid: %@", b.proximyUUID);
}

答案 3 :(得分:0)

虽然其他答案在技术上是正确的,但他们没有做太多解释为什么他们是正确的以及提问者做错了什么。

查看函数声明:NSLog(NSString *format, ...)

NSLog()接受两个参数,格式字符串和变量参数列表(...),它们在格式字符串中使用。

格式字符串是使用格式说明符(占位符)将值替换为字符串的文字字符串。例如:@"Hello my name is %@"。这里,%@用作对象的格式说明符,并伴随着在变量参数列表中传入的名称变量。

完整的函数调用看起来像NSLog(@"Hello my name is %@", myName);

格式说明符和变量参数列表按从左到右的顺序处理。

其他数据类型还有其他格式说明符(还有更多,请查看文档):

  • %d - 整数
  • %f - 花车
  • %@ - 对象

您之前的代码崩溃的原因是因为您将NSUInteger(来自-count的返回值)作为参数传递给期望字符串的函数。字符串变量是ObjC中的指针,因此崩溃发生是因为代码试图将整数作为指针访问(您可以在文档中阅读更多内容)。

可以在https://developer.apple.com/programs/ios/gettingstarted/找到适合iOS和Objective-C的良好入门指南,并且一如既往地阅读Xcode中可访问的文档!

答案 4 :(得分:0)

NSMutableString * retStr = [NSMutableString string];
NSInteger n = [beacons count];
while (n>=1000) {
    [retStr appendString:@"M"];
    n-=1000;
}
if (n>=900) {
    [retStr appendString:@"CM"];
    n-=900;
}
if (n>=500) {
    [retStr appendString:@"D"];
    n-=500;
}
if (n>=400) {
    [retStr appendString:@"CD"];
    n-=400;
}
while (n>=100) {
    [retStr appendString:@"C"];
    n-=100;
}
if (n>=90) {
    [retStr appendString:@"XC"];
    n-=90;
}
if (n>=50) {
    [retStr appendString:@"L"];
    n-=50;
}
if (n>=40) {
    [retStr appendString:@"XL"];
    n-=40;
}
while (n>=10) {
    [retStr appendString:@"X"];
    n-=10;
}
if (n>=9) {
    [retStr appendString:@"IX"];
    n-=9;
}
if (n>=5) {
    [retStr appendString:@"V"];
    n-=5;
}
if (n>=4) {
    [retStr appendString:@"IV"];
    n-=4;
}
while (n) {
    [retStr appendString:@"I"];
    n--;
}
NSLog(@"%@",retStr);