【发布时间】:2014-11-16 00:48:37
【问题描述】:
在运行期间尝试将所有 RSSI 值存储在 NSMutablearray 中,然后最终输出到控制台。已将 x 的值更改为 20000 以查看 RSSI 的值是否有任何变化......不幸的是,没有变化 - Xcode 报告在代码开头读取的 RSSI 的 20000 值(不确定这是否是采样问题或?)。任何帮助将不胜感激。
rssiArray = [[NSMutableArray alloc] init];
long newBeacon = 0;
if (beacon.rssi == newBeacon)
{
newBeacon = beacon.rssi;
}
else
{
for (int x = 0; x < 1; x++) {
[rssiArray addObject:[NSString stringWithFormat:@"%d", x]];
[rssiArray addObject:@(beacon.rssi)];
}
}
//Send array to console
NSLog (@"%@", [self rssiArray]);
数组在同一个文件的顶部合成,如下所示:
#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>
#import "DetailViewController.h"
@interface ViewController ()
{
}
@end
@implementation ViewController
@synthesize rssiArray;
这里的ViewController.h中也定义了数组:
//array for storing RSSI values
@property (strong, nonatomic) NSMutableArray *rssiArray;
@PaulW
所以……
-
像这样在 ViewController.m 中初始化数组:
- (void)viewDidLoad { [super viewDidLoad]; rssiArray = [[NSMutableArray alloc] initWithObjects:nil]; } -
将以下代码粘贴到 AppDelegate.m 中的 didRangeBeacons 方法中,如下所示...
for (int x = 0; x < 500; x++) { [rssiArray addObject:[NSString stringWithFormat:@"%d", x]]; [rssiArray addObject:@(NOTSUREWHATGOESHERE???..WANT TO STORE RSSI)]; } //Send array to console NSLog (@"%@", [self rssiArray]);
【问题讨论】:
-
rssiArray的声明是否显示在上下文中? IE。每次执行此方法时,您是否重新初始化rssiArray?如果是这样,那是你的问题。如果没有,请在上下文中显示您的完整方法和数组声明 -
@Paulw11 - 代码已更新以反映您的问题。提前谢谢你。
-
看来您每次都在初始化数组。这意味着您将有效地丢弃以前的值。这段代码在
didRangeBeacons中吗? -
@Paulw11 - Gotchya。可能需要帮助来判断这是否正在完成。以上代码均不在 didRangeBeacons 内。应该是吗?上述代码的循环位于 ViewController.m 中。想法?
-
这就是为什么它有助于在上下文中查看代码 - 带有方法名称。您应该在 viewDidLoad 中初始化数组并在 didRangeBeacons 中添加它。
标签: ios xcode bluetooth ibeacon rssi