小编Nei*_*Net的帖子

iOS - 在设置>隐私>动作活动中启用动作活动

如果应用需要访问Motion Activity数据,则会在安装时询问用户.但是,如果用户意外回答"否",则该应用程序将无法运行.

我正在寻找一种方法来检查运动活动是否已启用,以便我可以提示用户启用,如果没有.

有人可以指出我正确的方向代码吗?


根据Doc(谢谢)提供的信息,似乎Apple没有提供直接的方法来检查Motion Activity隐私状态.通过了解错误,我能够找到答案: -

[stepCounter queryStepCountStartingFrom:[NSDate date]
                                     to:[NSDate date]
                                toQueue:[NSOperationQueue mainQueue]
                            withHandler:^(NSInteger numberOfSteps, NSError *error) {
                                if (error != nil && error.code == CMErrorMotionActivityNotAuthorized) {
                                    // The app isn't authorized to use motion activity support.
}
Run Code Online (Sandbox Code Playgroud)

ios core-motion

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

是否可以检查iOS 7中是否启用了iCloud KeyChain?

我想检查用户是否在iOS设备上启用了iCloud Keychain,以便在没有这样的情况下提示他们,以便他们可以将其打开以允许同步数据.任何人都可以建议我如何以编程方式实现这一目标?

有没有办法阅读设置?

谢谢.

settings keychain ios icloud ios7

13
推荐指数
1
解决办法
722
查看次数

iOS崩溃报告SKProductsRequest

有人可以确认我的想法是由于SKProductsRequestDelegate仍然被分配而生成以下崩溃报告,但代码本身不是吗?即VC已关闭?

StoreKit: __34-[SKProductsRequest _handleReply:]_block_invoke + 442

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x41682340
Triggered by Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x38d19626 objc_msgSend + 6
1   StoreKit                        0x30c4784a __34-[SKProductsRequest _handleReply:]_block_invoke + 442
2   libdispatch.dylib               0x391f7830 _dispatch_call_block_and_release + 8
3   libdispatch.dylib               0x391f781c _dispatch_client_callout + 20
4   libdispatch.dylib               0x391fe49a _dispatch_main_queue_callback_4CF$VARIANT$mp + 274
5   CoreFoundation                  0x2e45f89c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4
6   CoreFoundation                  0x2e45e170 __CFRunLoopRun + 1296
7   CoreFoundation                  0x2e3c8eba CFRunLoopRunSpecific + 518
8   CoreFoundation                  0x2e3c8c9e CFRunLoopRunInMode + 102
9 …
Run Code Online (Sandbox Code Playgroud)

crash-reports in-app-purchase ios skproduct

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

iOS崩溃libobjc.A.dylib objc_msgSend

我在Crashlytics中得到了如下所示的崩溃.

我无法理解应用程序中的这个形式.不幸的是,我自己从来没有能够产生这种崩溃,但它是在野外发生的.

应用程序名称只有一个引用,并且没有任何内容可以显示应用程序的来源.

事实上,没有关于应用程序在何处发生的数据,这表明在didFinishLaunchingWithOptions期间发生了一个问题,因此实际上没有足够的距离显示任何进一步的细节?或者是否有其他原因导致数据中缺少日志以显示问题所在?

任何人都可以建议我如何追踪这个?

    Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x0000000195de3bd0 objc_msgSend + 16
1  CoreFoundation                 0x0000000183fd9458 CFRelease + 524
2  CoreFoundation                 0x0000000183fe5a18 -[__NSArrayM dealloc] + 152
3  libobjc.A.dylib                0x0000000195de9724 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 564
4  CoreFoundation                 0x0000000183fdd074 _CFAutoreleasePoolPop + 28
5  Foundation                     0x0000000184f0e588 -[NSAutoreleasePool release] + 148
6  UIKit                          0x0000000188be03f4 -[UIApplication _run] + 588
7  UIKit                          0x0000000188bdaf40 UIApplicationMain + 1488
8  _THE_APP_NAME_                 0x0000000100031e20 main (main.m:16)
9  libdyld.dylib                  0x000000019647aa08 start + 4

Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x00000000f5b2beb8
Run Code Online (Sandbox Code Playgroud)

我在这个帖子的评论中添加以下内容.此代码是与UI相关的主要更改,除了通常的标签设置等,我无法看到问题.

下面的代码被添加到AppDelegate.m,DidFinishLaunchingWithOptions. …

crash objective-c ios libobjc

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

XCode 5是否可以更改故事板上的字体和大小?

在XCode 5中是否可以更改故事板上的字体和大小?如果我选择UILabel或按钮等,并在右侧的检查器窗格中查找,我无法找到更改字体类型和大小的方法?

我找到了编辑菜单>格式>字体,并且可以增加字体大小,但是必须一次只做一次,而不是能够编辑数字,但是看不到改变字体或颜色等的方法?

fonts font-size uilabel ios7 xcode5

5
推荐指数
1
解决办法
1万
查看次数

iOS Objective C等待异步进程

我在AppDelegate中调用下面的代码:

-(void) application:(UIApplication *)application performFetchWithCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler {


-(BOOL)backgroundRefresh{
    newData = false;
    callStartTime = [NSDate date];

    [self processAll];
       dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        while(!fetchComplete);
        NSLog(@"NOW COMPLETE");

   });
    NSLog(@"Got here now!");
    return newData;
}
Run Code Online (Sandbox Code Playgroud)

对[self processAll]的调用运行具有异步调用等的代码,并将继续循环,直到所有活动完成,重复调用自身.完成所有任务后,fetchComplete将设置为true.这部分工作正常.

我需要代码等待fetchComplete为true,然后将bool返回给AppDelegate.

问题是,非常正确的是,当前检查虽然它可以显示NSLog等,但是将BOOL返回给调用者是没有用的,因为该进程当前是异步的.我已将其设置为异步以便它运行,否则,我发现processAll代码被阻止运行.

有人可以说明如何监视fetchComplete,只有一次是真的将bool返回给调用函数?

我已经尝试在返回while之后将返回移动到异步块,但是由于在块内调用,这会返回语法错误.

非常感谢.

asynchronous objective-c while-loop wait ios

4
推荐指数
2
解决办法
9700
查看次数

iOS NSNotificationCenter Observer未被删除

我在AppDelegate中有以下代码.目的是创建几个观察者,然后调用一些代码.一旦该代码完成,然后发布通知,然后观察者应该删除两个观察者并调用完成处理程序.

我的问题是看来观察员没有像我预期的那样被删除.发布通知,并将NSLog条目写入控制台,因此我知道观察者正在工作.但是,在第二次调用时,NSLog被调用两次,第三次调用三次等.

我的想法是,这与从观察者运行的代码块中的删除有关,但是,我不确定如何解决这个问题(如果这确实是问题所在).

有人可以如此善良地解释我是如何实现这一目标的吗?

谢谢.

-(void) application:(UIApplication *)application performFetchWithCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler {

    [[NSNotificationCenter defaultCenter] addObserverForName:@"fetchDidCompleteNewData" object:nil
                                                     queue:nil usingBlock:^(NSNotification *completed) {

                                                         //Remove Observers
                                                         [[NSNotificationCenter defaultCenter] removeObserver:self
                                                                                                         name:@"fetchDidCompleteNewData"
                                                                                                       object:nil];
                                                         [[NSNotificationCenter defaultCenter] removeObserver:self
                                                                                                         name:@"fetchDidCompleteNoData"
                                                                                                       object:nil];


                                                         // Post completion
                                                         completionHandler(UIBackgroundFetchResultNewData);
                                                         NSLog(@"Background fetch completed... New Data");
                                                     }];

    [[NSNotificationCenter defaultCenter] addObserverForName:@"fetchDidCompleteNoData" object:nil
                                                       queue:nil usingBlock:^(NSNotification *completed) {

                                                           //Remove Observers
                                                           [[NSNotificationCenter defaultCenter] removeObserver:self
                                                                                                           name:@"fetchDidCompleteNoData"
                                                                                                         object:nil];

                                                           [[NSNotificationCenter defaultCenter] removeObserver:self
                                                                                                           name:@"fetchDidCompleteNewData"
                                                                                                         object:nil];

                                                           //post completion
                                                           completionHandler(UIBackgroundFetchResultNoData);
                                                           NSLog(@"Background fetch completed... No New Data");

                                                       }];

    GetDetails *getDetails = [[GetDetails alloc] init];
    [getDetails backgroundRefresh]; …
Run Code Online (Sandbox Code Playgroud)

objective-c observers nsnotificationcenter ios

3
推荐指数
1
解决办法
1095
查看次数

iOS NSNumber 对二进制表达式的无效操作数(NSNumber *" 和 'double')

我有以下代码行

NSNumber *myValue = loadTempValue*0.420;
Run Code Online (Sandbox Code Playgroud)

我试图将 的值设置*myValue为 的值loadTempValue*0.420

但是,我收到错误

Invalid operands to binary expression ('NSNumber *" and 'double')

有人可以建议如何设置吗?

expression nsnumber operands ios

2
推荐指数
1
解决办法
5899
查看次数

iOS和NSDate功能最近7天

我有以下代码来生成当前日期,以便让我显示今天采取的步骤数.

但是,我想显示存储的前7天数据,但不确定如何使日期查询显示过去7天的每一天,以便我可以进行7次查询.我认为可以写下7次以下的代码,一个-1 -2 -3等,但不确定我会在哪里进行调整以获得先前的日期.

有人可以为我揭开它的光芒吗?

// Calculate start of day

- (NSDate * )startDateOfToday
{
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
                                               fromDate:[NSDate date]];

    return [calendar dateFromComponents:components];
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

nsdate ios

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