小编Bil*_*ess的帖子

iOS KeyChain不从后台检索值

我目前正在iOS KeyChain中存储用户名(电子邮件)和电子邮件和密码的盐渍哈希.我正在使用这里发现的ARC'ified版本.

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil];
[wrapper setObject:APP_NAME forKey:(__bridge id)kSecAttrService];
[wrapper setObject:email forKey:(__bridge id)kSecAttrAccount];
[wrapper setObject:token forKey:(__bridge id)kSecValueData];
Run Code Online (Sandbox Code Playgroud)

当我需要在应用程序处于活动状态时拉出令牌以进行网络呼叫时,这一切都正常.它适用于从干净的启动登录,以及整个网络调用.当应用程序在后台时,问题就开始了.

请记住,这只是零星发生,我还没有把它固定到特定的iOS版本或设备上.

用户绊倒一个位置(区域监控),我想用他们的状态更新服务器.我尝试将令牌从钥匙串中取出,就像我为每个其他网络呼叫所做的那样,并更新状态.但对于一些用户来说,价值是零.没有它,我无法更新网络内容.为什么这对大多数人有效,但对于一小部分人来说不是这样?

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil];
NSString *token = [wrapper objectForKey:(__bridge id)kSecValueData];
Run Code Online (Sandbox Code Playgroud)

我已经回到了keychainwrapper的非ARC版本,但我仍然得到了相同的结果.我将不胜感激任何反馈.它只是我用户的一小部分,但这是一个我想解决的问题而不用担心.提前致谢.

此外,我的所有后台工作都在backgroundTask中设置,以防止事情超时.我对钥匙链的工作没有任何问题,但在令牌填满之前我不会让事情继续下去.

编辑 我发现我的问题是他们的钥匙串没有从后台检索值.我将在下面发布答案并接受它,因为我觉得这个问题可能会在以后对其他人有价值.

iphone background keychain lockscreen ios

81
推荐指数
2
解决办法
2万
查看次数

如何禁用使用-startMonitoringForRegion注册的任何CLRegion对象?

我正在使用NavigationController来显示用户可用的地理围栏列表.在顶部有一个全局开/关开关,我想用它来禁用在CoreLocation -startMonitoringForRegion中注册的任何栅栏.

我的围栏似乎正在注册好并且大部分工作,但无论多少次我单独禁用围栏,我仍然得到紫色位置箭头,表明系统仍在监视我的位置和/或围栏.

当我单独禁用我的围栏时,这就是我正在做的事情.

CLLocationCoordinate2D coord;
coord.latitude = [[settingsData valueForKey:@"latitude"] doubleValue];
coord.longitude = [[settingsData valueForKey:@"longitude"] doubleValue];
CLLocationDistance radius = [[settingsData valueForKey:@"radius"] intValue];
CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:coord radius:radius identifier:[settingsData valueForKey:@"name"]];

// remove this fence from system monitoring
[locationManager stopMonitoringForRegion:region];
[region release];
Run Code Online (Sandbox Code Playgroud)

我已经浏览了关于CoreLocation的所有Apple文档以及这些方法的使用,我就在最后.

我已经尝试过调用,[locationManager monitoredRegions];但它只返回活动的栅栏,并且只有在我加载了详细信息视图时.我无法在程序中的任何其他位置调用它并让它返回我的任何围栏,即使我知道它们应该是活动的.如果有人有任何建议去哪,接下来我都听见了.

iphone core-location ios clregion

24
推荐指数
2
解决办法
8925
查看次数

使用startMonitoringForRegion可以监视的最大区域数是多少:region desiredAccuracy:accuracy?

该文件说,可监测的区域数量有限 -

(void)startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy
Run Code Online (Sandbox Code Playgroud)

但我找不到那个限制,有人知道吗?

iphone core-location cllocationmanager ios

12
推荐指数
1
解决办法
4678
查看次数

在哪些iOS设备上支持区域监控?

根据我对Apple样本区域监控代码的运行时要求的解释,可以在iPhone 4,iPad 2 Wifi + 3G或更高版本上使用区域监控.所以我假设它不适用于带有3G或iPhone 3G/3GS的iPad1.

这是正确的解释吗?我无法测试这个,因为我没有所有这些设备,我找不到关于此的官方文档.

PS:我知道我可以通过调用regionMonitoringAvailable方法在代码中检查它,但我需要这些信息来决定我的应用程序的架构,所以我需要事先知道这一点.

device regions cllocationmanager ios clregion

12
推荐指数
1
解决办法
2203
查看次数

我可以使用Xcode模拟器测试显着变化吗?

我想知道我是否可以在Xcode Simulator中测试重要更改位置服务(startMonitoringSignificantLocationChanges方法),或者它只适用于实际设备.请注意,我已经在模拟器中尝试了它并且它不起作用,但我不确定这是否只是因为它不能在模拟器上工作或因为我做错了什么.

谢谢

core-location cllocationmanager ios

11
推荐指数
2
解决办法
6566
查看次数

在选择节中的最后一行后显示分隔线

我在所有的UITableView中都看到了一种奇怪的行为.这开始让我疯狂.

我有简单风格的UITableViews.该部分的最后一行没有得到分隔符,它只是混合到节标题(顺便说一下默认用法).检查最后一行的高度,看起来Apple正在增大1px以从单元格中移除分隔符高度.问题是当我选择行但拖动时,分隔线显示并且永远不会消失.如果我返回视图并返回,则默认为关闭.

我在所有的表视图,普通单元格和自定义单元格中看到了这一点.取消选择时,我该怎么做才能确保最后一个分隔符远离?iOS 7仅构建.运行当前构建,没有beta.

uitableview ios ios7

10
推荐指数
1
解决办法
1801
查看次数

从CLLocation数组创建GPX文件

我的应用程序需要使用application共享设备中的CLLocations(Route)数组.我没有在此之前使用GPX的经验.GPX是最好的格式吗?如何从给定的CLLocations数组创建GPX文件?Objective C中是否有标准的GPX解析器?从我在网上搜索的内容和SO分别回答这些问题

1.cant say
2. I have seen some webpages converting data of points in GPX format but could not find how they are doing it.
3. No
Run Code Online (Sandbox Code Playgroud)

如果我得到其他答案/意见,我会很高兴.我知道这些都是很多问题.任何帮助或建议将非常感激.

iphone parsing core-location gpx ios

8
推荐指数
2
解决办法
8480
查看次数

在iOS中存储对象以供以后使用

我的应用程序从我们的Web服务中提取JSON数据.在所有直到现在的实例中,信息将保留在内存中或者只是动态刷新,除了API中使用的登录令牌之外,不需要保留本地任何内容.通过我们添加的新功能之一,我们将采用一组位置,最大26位,具有长,纬度,半径和名称.

我还需要为此数据添加1-2个字段以创建更大的对象.所以我的问题是,在iOS文件系统中存储此类数据的最佳方法是什么?目前我一直在使用NSUserDefaults,但对于大量数据而言,这似乎有点受限或不明智.也许不吧.

需要检索,更改或编辑此数据并重新保存.所有这一切仍然保留了拉动这26个物体中的任何一个的能力.提前感谢您的阅读和帮助.

objective-c file-storage nsuserdefaults ios

6
推荐指数
1
解决办法
4700
查看次数

在UIBarButtonItem setTintColor上发送无法识别的选择器

我在应用程序商店中有一个应用程序,我正在使用Flurry分析.并且我不时会得到一个未处理的异常错误,我无法弄明白.

NSInvalidArgumentException: - [UIBarButtonItem setTintColor:]:发送到实例0x177b20的无法识别的选择器Msg:应用程序崩溃

我无法弄清楚的是,我没有在任何地方设置任何条形按钮项目的色彩.我有一些自定义视图,我设置正确的条形按钮项目,但没有色调.

我对按钮的大多数使用都是这样的.

- (void)viewDidLoad
{
    [super viewDidLoad];

    UINavigationBar *bar = [self.navigationController navigationBar];
    [bar setTintColor:[UIColor colorWithRed:0 green:69.0/255 blue:118.0/255 alpha:1]];
    self.navigationItem.title = @"Edit User";

    UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] 
                                   initWithTitle:@"Save"
                                   style:UIBarButtonItemStylePlain 
                                   target:self
                                   action:@selector(editUser:)];
    self.navigationItem.rightBarButtonItem = saveButton;
    [saveButton release];

    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] 
                                     initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                     target:self
                                     action:@selector(cancel)];

    [[self navigationItem] setLeftBarButtonItem:cancelButton];
    [cancelButton release];

}
Run Code Online (Sandbox Code Playgroud)

如果有人对此问题有任何见解,我将非常感激.我的目标是iOS 4.0以及我的项目.

更新: 我弄清楚是什么导致了setTintColor上的一些随机问题.我发现我在其中一个实际的条形按钮项上设置了色调.我猜测OS版本之间存在一些可能导致崩溃的差异.因此,如果有人能告诉我在导航栏中设置自定义右键栏项目的OS中立方式,我们将不胜感激.

iphone uibarbuttonitem ios unrecognized-selector

6
推荐指数
1
解决办法
3364
查看次数

重用UIWebView会导致崩溃

我已经读过重用UIWebViews是一种不好的做法.我在工作中继承的一些代码将各种内容推送到UIWebView.Powerpoint,Word文档和视频.这一切在正常情况下都可以正常工作.当我们过快地切换UIWebView中的内容时,它会转储.

我的webView被设置为属性.它很好地融入了IB.从我们的tableView正常选择加载本地内容就好了.它需要快速选择相同的单元格或多个组合才能使其崩溃.

我可以为webViewDidFailWithError捕获一些错误消息.但即使没有崩溃,这些也会触发.这是错误的本地化字符串.

The operation couldn’t be completed. (NSURLErrorDomain error -999.)
Run Code Online (Sandbox Code Playgroud)

当应用程序最终崩溃时,它会破坏这个愚蠢的WebCore错误.

应用程序崩溃图像

如果有人有任何链接或一些代码示例如何处理这个我会很感激.也许是一个例子,如何最好地重用我的webView属性而不会搞砸.

我会加载一些代码,但有很多与webView本身无关.所有推送到webView的内容都是通过[self.webView loadRequest:request];NSURLRequest填充本地内容路径的请求完成的.

如果有人能帮我解决这个问题,我将非常感激.手指越过简单的东西.

uiwebview ipad ios

6
推荐指数
1
解决办法
2223
查看次数