1

我对 iOS 编程还很陌生,并且仍然学到了很多东西。我希望在某个屏幕上自动弹出警报视图。基本上我正在为应用程序使用新的 qualquamm Gimbal 信标。此代码在首次找到信标时触发日志:

// FYXVisitDelegate protocol
- (void)didArrive:(FYXVisit *)visit;
{
    // this will be invoked when an authorized transmitter is sighted for the first time
    NSLog(@"I arrived at a Gimbal Beacon!!! %@", visit.transmitter.name);


}

我想做的是当第一次发现日志说什么只是为了测试时触发弹出或警报。我想给警报打上烙印,但听说这在 iOS 7 中已经不可能了,所以如果有任何关于弹出窗口的建议,我也很乐意听到。

这就是我没有运气的情况(尽管日志仍然被触发):

- (void)didArrive:(FYXVisit *)visit;
{
    // this will be invoked when an authorized transmitter is sighted for the first time
    NSLog(@"I arrived at a Gimbal Beacon!!! %@", visit.transmitter.name);

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:@"%@" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"View", visit.transmitter.name, nil];

    [alert show];
}
4

1 回答 1

0

问题可能是您的消息字符串分配,您使用的是格式字符串 @"%@" 但您缺少对 stringWithFormat 的调用:

旧代码:(查看消息参数)

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:@"%@" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"View", visit.transmitter.name, nil];

新代码:(注意 [NSString stringWithFormat] 调用)

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:[NSString stringWithFormat:@"%@",  visit.transmitter.name] delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"View",  visit.transmitter.name, nil];

旧代码还分配了一个以发射器名称命名的 alertView 按钮。我将它保留在新代码中,但如果您不想要它,请从 otherButtonTitles: 参数中删除“visit.transmitter.name”。

此外,如果您在访问过程中寻找更新,请使用此 FYXVisitManager 委托方法:

  • (void)receivedSighting:(FYXVisit *)visit updateTime:(NSDate *)updateTime RSSI:(NSNumber *)RSSI;
于 2014-06-20T05:35:09.280 回答