Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从NSArray输出值_Ios_Objective C_Nsarray - Fatal编程技术网

Ios 从NSArray输出值

Ios 从NSArray输出值,ios,objective-c,nsarray,Ios,Objective C,Nsarray,我只是想输出NSArray中保存的值,因为我想看看这个东西有多大。不过,我对iOS开发和ObjectC一般来说都是新手,所以我希望有人能帮助我 数组中填充了以下调用: -(void)beaconManager:(ESTBeaconManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(ESTBeaconRegion *)region { if([beacons count] >

我只是想输出NSArray中保存的值,因为我想看看这个东西有多大。不过,我对iOS开发和ObjectC一般来说都是新手,所以我希望有人能帮助我

数组中填充了以下调用:

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

    } 
}
我一直在尝试调用嵌套if语句中的以下行,但每次调用它时,系统都会崩溃:

       NSLog([beacons count]);

有人能告诉我如何显示此数组中的值,以及我如何访问这些值吗?

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

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

试试这样的

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

虽然其他答案在技术上是正确的,但它们并不能解释为什么它们是正确的以及提问者做错了什么

查看函数声明:
NSLog(NSString*格式,…)

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

格式字符串是使用格式说明符(占位符)将值替换为字符串的文字字符串。例如:
@“你好,我的名字是%@”
。此处,
%@
用作对象的格式说明符,并将伴随变量参数列表中传入的名称变量

完整的函数调用看起来像
NSLog(@“你好,我的名字是%@”,我的名字)

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

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

  • %d
    -整数
  • %f
    -浮动
  • %@
    -对象
上一个代码崩溃的原因是,您将一个
nsuiger
(来自
-count
的返回值)作为参数传递给一个需要字符串的函数。字符串变量是ObjC中的指针,因此发生崩溃是因为代码试图将整数作为指针访问(您可以在文档中阅读更多内容)


iOS和Objective-C的良好入门指南可以在Xcode中找到,并一如既往地阅读可从Xcode中访问的文档

本例中的用法是
NSLog(@“数组内容:%@,对象计数:%d”,信标,[信标计数])
NSLog
接受一个字符串参数,您正在传递整数,因此崩溃。总的来说,当你有疑问的时候,可以用做你的朋友。这似乎是很多方法,但是,这显然是最有效的方法。
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);
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);