javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

iOS Push Notification Banner一次显示两次

我注意到发送推送通知会导致以下行为:

Push Banner is shown twice?

看到广告在短暂的延迟后又如何显示?

起初我以为我们的后端错误地发送了2个推送通知,一个接一个。

但是,这似乎是单个Push通知的默认iOS行为。 显示横幅,然后立即“再次显示”。 这会导致显示在gif中的抖动UI。 标语似乎收到了两次。

使用iOS 9.0.2测试。

我不记得在向我发送推送通知的其他应用程序中看到过这种行为。 我做错了什么会导致横幅显示两次吗?

雷达:

工程确定您的错误报告(23133694)与另一个问题(23130766)是重复的,将被关闭。

trans by 2020-08-12T00:22:07Z

迅速-iOS 9-“试图删除并重新加载相同的索引路径”

这是一个错误:

CoreData:错误:严重的应用程序错误。 在调用-controllerDidChangeContent:期间,从NSFetchedResultsController的委托捕获了一个异常。 尝试使用userInfo(空)删除并重新加载相同的索引路径({length = 2,path = 0-0})

这是我典型的viewDidLoad()

func controllerWillChangeContent(controller: NSFetchedResultsController) {
    tableView.beginUpdates()
}

func controller(controller: NSFetchedResultsController, didChangeSection sectionInfo: NSFetchedResultsSectionInfo, atIndex sectionIndex: Int, forChangeType type: NSFetchedResultsChangeType) {

    let indexSet = NSIndexSet(index: sectionIndex)

    switch type {
    case .Insert:
        tableView.insertSections(indexSet, withRowAnimation: .Fade)
    case .Delete:
        tableView.deleteSections(indexSet, withRowAnimation: .Fade)
    case .Update:
        fallthrough
    case .Move:
        tableView.reloadSections(indexSet, withRowAnimation: .Fade)
    }
}

func controller(controller: NSFetchedResultsController, didChangeObject anObject: NSManagedObject, atIndexPath indexPath: NSIndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath?) {

    switch type {
    case .Insert:
        if let newIndexPath = newIndexPath {
            tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)
        }
    case .Delete:
        if let indexPath = indexPath {
            tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
        }
    case .Update:
        if let indexPath = indexPath {
            tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .None)
        }
    case .Move:
        if let indexPath = indexPath {
            if let newIndexPath = newIndexPath {
                tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
                tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)
            }
        }
    }
}

func controllerDidChangeContent(controller: NSFetchedResultsController) {
    tableView.endUpdates()
}

viewDidLoad()

private func setupOnceFetchedResultsController() {

    if fetchedResultsController == nil {
        let context = NSManagedObjectContext.MR_defaultContext()
        let fetchReguest = NSFetchRequest(entityName: "DBOrder")
        let dateDescriptor = NSSortDescriptor(key: "date", ascending: false)

        fetchReguest.predicate = NSPredicate(format: "user.identifier = %@", DBAppSettings.currentUser!.identifier )
        fetchReguest.sortDescriptors = [dateDescriptor]
        fetchReguest.fetchLimit = 10
        fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchReguest, managedObjectContext: context, sectionNameKeyPath: "identifier", cacheName: nil)
        fetchedResultsController.delegate = self

        try! fetchedResultsController.performFetch()
    }
}
trans by 2020-08-06T03:55:44Z

uicollectionview-未定义UICollectionViewFlowLayout的行为,因为单元格宽度大于collectionView宽度

2015-08-18 16:07:51.523示例[16070:269647]的行为 未定义UICollectionViewFlowLayout是因为:2015-08-18 16:07:51.523
Example [16070:269647]项目宽度必须小于 UICollectionView的宽度减去该部分的左插图, 右边的值减去内容插入左和右边的值。
2015-08-18 16:07:51.524示例[16070:269647]相关 UICollectionViewFlowLayout实例为,并附加到; 动画= { position =; bounds.origin =; bounds.size =; }; 层=; contentOffset:{0,0}; contentSize:{1024,770}> 集合视图布局:。 2015-08-18 16:07:51.524例子[16070:269647]做一个象征 UICollectionViewFlowLayoutBreakForInvalidSizes处的断点以捕获 这在调试器中。

这就是我得到的,我要做的是

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
        return CGSizeMake(self.collectionView!.frame.size.width - 20, 66)
    }

当我从横向旋转到纵向时,控制台仅在iOS 9中显示此错误消息,是否有人知道会发生什么,并且是否有此问题的解决方法?

Screenshot

trans by 2020-07-24T10:11:20Z

目标c-如何发送POST和GET请求?

我想将ASIHTTPRequest发送到URL(POSTGET)。

NSMutableDictionary *JSONDict = [[NSMutableDictionary alloc] init];
[JSONDict setValue:"myValue" forKey:"myKey"];

NSData *JSONData = [NSJSONSerialization dataWithJSONObject:self options:kNilOptions error:nil];

我当前的请求代码不起作用。

NSMutableURLRequest *requestData = [[NSMutableURLRequest alloc] init];

[requestData setURL:[NSURL URLWithString:@"http://fake.url/"];];

[requestData setHTTPMethod:@"POST"];
[requestData setValue:postLength forHTTPHeaderField:@"Content-Length"];
[requestData setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[requestData setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[requestData setHTTPBody:postData];

使用ASIHTTPRequest不是一个可靠的答案。

trans by 2020-07-08T01:54:41Z

swift2-Swift 2在协议扩展中使用变异函数时出错“不能在不可变值上使用变异成员:'self'是不可变的

不知道这里发生了什么,这似乎应该很简单。 我有一个可变var的协议,具有可变功能的扩展。 当我尝试使用扩展中声明的mtkAnimQueAppend时,事情在testClass.testFunc中崩溃了,我收到以下错误消息:“不能在不可变值上使用变异成员:'self'是不可变的。

protocol MTKAnimateValueDelegate {
    var mtkAnimQue:[MTKAnimateValue]? {get set}
}

extension MTKAnimateValueDelegate {
    ///Adds element to que
    mutating func mtkAnimQueAppend(element:MTKAnimateValue) {

        if mtkAnimQue != nil {
          mtkAnimQue?.append(element)
        } else {
          mtkAnimQue = [element]
        }
    }
}

class testClass: MTKAnimateValueDelegate {

  var mtkAnimQue:[MTKAnimateValue]?

  func testFunc() {
    var animValue = MTKAnimateValue(fromValue: 10, toValue: 20, inSeconds: 2)
    animValue.isAnimating = true
    mtkAnimQueAppend(animValue) //ERROR: "Cannot use mutating member on immutable value: 'self' is immutable
  }

}
trans by 2020-07-03T07:22:55Z

ios-对于仅iPhone的应用程序,Xcode中“要求全屏”选项的影响是什么?

对于仅iPad的应用程序或通用应用程序,"Requires full screen"选项告诉Xcode / iOS该应用程序是否支持iOS 9中引入的iPad多任务处理功能。但是如果它是仅iPhone的应用程序,则还会显示"Requires full screen"选项。 在这种情况下,此选项有什么影响?

enter image description here

trans by 2020-06-27T22:49:34Z

ios-OSStatus错误代码-34018

我正在使用-34018访问iOS钥匙串。 从后台重新启动应用程序后,大约有一百分之一的时间我得到了-34018结果代码。 该文档指出:

为钥匙串服务分配的错误空间是不连续的: –25240至–25279和–25290至–25329。 钥匙扣物品 服务还可能返回noErr(0)或paramErr(–50)或CSSM结果 码

因此看来-34018是“ CSSM结果代码”。 我已遵循建议的链接,但找不到结果代码。

-34018结果代码是什么? 如何获得更可靠的钥匙串访问?

- (NSData *)getKeychainData:(NSString *)key
{
    NSDictionary *query = @{
        (__bridge id)kSecClass:(__bridge id)kSecClassGenericPassword,
        (__bridge id)kSecAttrService:SEC_ATTR_SERVICE,
        (__bridge id)kSecAttrAccount:key,
        (__bridge id)kSecReturnData:@YES
    };

    CFDataRef result = nil;

    OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, (CFTypeRef *)&result);

    if(status == errSecItemNotFound) {
        return nil;
    }

    if(status == noErr) {
        return CFBridgingRelease(result);
    } else {
        [self logError:[NSString stringWithFormat:@"SecItemCopyMatching status %d", (int)status] :nil];
        return nil;
    }
}
trans by 2020-06-19T10:20:15Z

swift-sendAsynchronousRequest在iOS 9中已被弃用,如何更改代码以进行修复

下面是我遇到的代码:

func parseFeedForRequest(request: NSURLRequest, callback: (feed: RSSFeed?, error: NSError?) -> Void)
{
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response, data, error) -> Void in

        if ((error) != nil)
        {
            callback(feed: nil, error: error)
        }
        else
        {
            self.callbackClosure = callback

            let parser : NSXMLParser = NSXMLParser(data: data!)
            parser.delegate = self
            parser.shouldResolveExternalEntities = false
            parser.parse()
        }
    }
}

现在从iOS 9开始不推荐使用此方法,并告诉我改用dataTaskWithRequest。 有人可以帮我用dataTask更改sendAsync,我不知道该怎么做。

trans by 2020-06-16T18:18:52Z

目标c-这是什么原因:无法从switch语句跳转到此案例实验室

这个问题已经在这里有了答案:

  • 在switch语句中定义块会导致编译器错误                                     1个答案

这是一个switch语句,我在以下方面遇到错误:

        switch (transaction.transactionState) {

        case SKPaymentTransactionStatePurchasing:

            // show wait view here
            statusLabel.text = @"Processing...";
            break;

        case SKPaymentTransactionStatePurchased:

            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

            // remove wait view and unlock iClooud Syncing
            statusLabel.text = @"Done!";

            NSError *error = nil;
            [SFHFKeychainUtils storeUsername:@"IAPNoob01" andPassword:@"whatever" forServiceName: kStoredData updateExisting:YES error:&error];

            // apply purchase action  - hide lock overlay and
            [oStockLock setBackgroundImage:nil forState:UIControlStateNormal];

            // do other thing to enable the features

            break;

        case SKPaymentTransactionStateRestored:

            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

            // remove wait view here
            statusLabel.text = @"";
            break;

        case SKPaymentTransactionStateFailed:

            if (transaction.error.code != SKErrorPaymentCancelled) {
                NSLog(@"Error payment cancelled");
            }
            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
            // remove wait view here
            statusLabel.text = @"Purchase Error!";
            break;

        default:
            break;
    }

最后两种情况,加上默认情况,给了我以下错误:

无法从switch语句跳转到此案例标签

我已经多次使用switch语句; 这是我第一次看到这个。 该代码已从一个教程(此处)复制而来,我正在尝试使其适应我的应用程序。 希望能对此提供帮助。 标清

trans by 2020-02-22T11:50:04Z

iOS 9 UITableView分隔符插入(显着的左边距)

我在iOS 9UITableView中的UITableViewCells之间的分隔符有问题。它们的左边距很大。 我已经有删除iOS 8引入的间距的代码,但不适用于iOS 9。好像他们添加了其他东西。 我想它可能与layoutMarginsGuide有关,但我还没有弄清楚。 是否有人遇到类似的问题并找到了解决方案?

trans by 2020-02-07T07:05:10Z

如何在iOS 9中使用新的San Francisco字体?

在iOS 9之前,我们使用UIFont中的systemFontOfSize来引用字体:

[UIFont fontWithName:@"HelveticaNeue" size:18]

现在我们移至iOS9。如何以相同方式引用新的San Francisco字体?

我们可以将其与UIFontsystemFontOfSize结合使用,但是如何引用常规样式以外的样式? 例如,如何使用San Francisco Medium或San Francisco Light字体?

trans by 2020-02-05T06:02:21Z

iOS9中的应用传输安全性和IP地址

我使用在我的开发箱上运行的本地服务器开发iOS应用。 在设备上进行测试时,我直接通过一个IP地址进行连接,该IP地址是通过HTTP而不是HTTPS进行的(因此,在开发过程中,我不必处理自签名证书,无论如何,该设备都不会)。

我认为这足够了:

enter image description here

但是,如果不添加NSExceptionDomains,也无法使其正常工作,也就是这样:

enter image description here

现在,我将不得不记住在滚动生产版本时而不是在开发过程中删除此参数... arg。 NSExceptionDomains是否应该使用IP地址,如果没有,我是否还能在不启用NSAllowsArbitraryLoads的情况下做其他事情?

trans by 2020-01-17T20:48:40Z

可可触摸-iOS 8,iOS 9,iOS 10和iOS 11上的UITabBar的高度是多少?

UITabBar的高度似乎已在iOS 7和8/9/10/11之间更改。 我将此问题发布给其他人,以轻松找到答案。

那么:在iOS 8/9/10/11上,iPhone和iPad上的UITabBar的高度是多少?

trans by 2020-01-15T16:28:32Z

目标c-无法在iOS 9中使用Facebook登录名打开本机Facebook应用程序

我已经将iPhone 6 plus更新为iOS 9 beta,并尝试执行Facebook登录,但是每次使用Facebook登录表单展示UIWebView时。

我有Facebook SDK

FB_IOS_SDK_VERSION_STRING @"3.24.0"
FB_IOS_SDK_TARGET_PLATFORM_VERSION @"v2.2"

我正在使用以下方法执行Facebook登录

    NSArray *permissions = @[@"email",@"user_birthday",@"public_profile"];


     FBSessionStateHandler completionHandler = ^(FBSession *session, FBSessionState status, NSError *error) {
         [self sessionStateChanged:session state:status error:error];
     };

     if ([FBSession activeSession].state == FBSessionStateCreatedTokenLoaded) {
     // we have a cached token, so open the session
         [[FBSession activeSession]openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent
                                 fromViewController:nil
                                  completionHandler:completionHandler];
     } else {

     [self clearAllUserInfo];
    [[NSURLCache sharedURLCache] removeAllCachedResponses];

     // create a new facebook session
     FBSession *fbSession = [[FBSession alloc] initWithPermissions:permissions];
     [FBSession setActiveSession:fbSession];
     [fbSession openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent
              fromViewController:nil
               completionHandler:completionHandler];
     }

我在plist文件下有以下设置

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fbapi</string>
        <string>fbapi20130214</string>
        <string>fbapi20130410</string>
        <string>fbapi20130702</string>
        <string>fbapi20131010</string>
        <string>fbapi20131219</string>
        <string>fbapi20140410</string>
        <string>fbapi20140116</string>
        <string>fbapi20150313</string>
        <string>fbapi20150629</string>
        <string>fb-messenger-api20140430</string>
        <string>fbauth</string>
        <string>fbauth2</string>
   <array>

请让我知道我在这里想念的东西。 首先,它正在检查iPhone device Setting-> Facebook credentials,但从不打开Facebook应用程序进行登录。 似乎无法识别设备上安装的Facebook应用。

trans by 2020-01-14T16:47:01Z

ios-更改属性contents仅转换层中的重力,将具有n

我开始创建一个非常简单的井字游戏。主要目标是使视图与所有iOS设备的所有屏幕尺寸成比例。因此,我将图像放在ViewController上,使其变为全屏大小,然后将其放入堆栈视图中。 我在所有方面都对此堆栈视图0添加了约束。当我运行模拟器时,一切看起来都很好。 但是我在控制台面板上收到一条消息。 这是什么意思?

screenshot

trans by 2020-01-13T03:50:37Z

迅速-当UISearchController为acti时,iOS 9 searchBar从表标题视图中消失

结构:

View1(单击一个按钮)->模态显示(MyModalView:UITableViewController)

MyModalView嵌入了UISearchController。 UISearchController的searchBar放在MyModalView.tableView.tableHeaderView中。

自iOS 8.0起,它一直运行良好。 但是,在iOS 9上,当SearchController处于活动状态时,搜索栏会消失。 请在下面看这些照片

模态视图:modal view

在iOS 8上有效的UISearchController:search bar in iOS 8

在iOS 9上有效的UISearchController:search bar in iOS 9

非常标准的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    // Dynamically create a search controller using anonymous function
    self.resultSearchController = ({
        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.dimsBackgroundDuringPresentation = false

        controller.searchBar.sizeToFit()
        controller.searchBar.delegate = self

        self.tableView.tableHeaderView = controller.searchBar

        return controller
    })()

    // Auto sizing row & cell height
    self.tableView.estimatedRowHeight = 130
    self.tableView.rowHeight = UITableViewAutomaticDimension
    self.definesPresentationContext = true

    // No footer for better presentation
    self.tableView.tableFooterView = UIView.init(frame: CGRectZero)
}

此问题在iOS 9.1 beta中也会发生...

任何想法/指针将不胜感激

干杯。

trans by 2020-01-07T12:34:24Z

谷歌分析-Swift 2 / iOS 9-未找到libz.dylib

我在新的Swift 2.0项目中使用了Google的一些外部代码,这些代码在早期版本中需要“ libz.dylib”。 更新到新的XCode /新的SDK之后。

XCode现在无法导入libz.dylib并引发一些错误

体系结构i386的未定义符号:    “ _deflate”,引用自:        libGoogleAnalyticsServices.a(GAICompressionUtil.o)中的+ [GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:]    “ _deflateEnd”,引用自:        libGoogleAnalyticsServices.a(GAICompressionUtil.o)中的+ [GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:]    “ deflateInit2”,引用自:        libGoogleAnalyticsServices.a(GAICompressionUtil.o)中的+ [GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:]    “ _inflate”,引用自:        + libGoogleAnalyticsServices.a(GAICompressionUtil.o)中的[[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:]    “ _inflateEnd”,引用自:        + libGoogleAnalyticsServices.a(GAICompressionUtil.o)中的[[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:]    “ inflateInit2”,引用自:        + libGoogleAnalyticsServices.a(GAICompressionUtil.o)中的[[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:]  ld:找不到体系结构i386的符号  clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

在“构建阶段”设置中浏览可用的软件包时,我可以找到“ libz.tbd”,它似乎是libz.dylib的替代品。 导入此lib时,链接器错误保持不变,但我得到以下附加警告:

警告:正在跳过文件“ /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/libz.tbd”(文件格式意外为“文本” 框架和库构建阶段)

知道该怎么办吗?

trans by 2020-01-06T06:05:18Z

iPhone-XPC连接在Xcode 7 for iOS 9中中断

我最近更新到Xcode 7,并将iPhone升级到iOS9。我开发并发布了一个iOS应用程序,该应用程序在最新版本的iOS 8和Xcode 6上运行良好。

在尝试完成针对iOS 9支持的应用程序更新过程后,我遇到了最荒唐的错误,使我感到困惑。

我已经通过Xcode自动完成了所有语法更正,现在我的应用可以正确构建。 一开始它甚至运行良好。

我有一个按钮,可以通过WebView链接到视图控制器。 该视图控制器加载了一个链接,该链接将显示来自youtube的图像,网站或视频。 内容加载一如既往的完美。 但是,当我单击“后退”按钮(我在导航堆栈中)时,该程序将崩溃并重新启动模拟器(和我的iPhone),并将我发送到锁定屏幕。

在Xcode中,我收到以下消息:

XPC连接中断。由于没有系统应用程序而终止。

顺便说一下,我在我的应用程序中集成了Flurry Analytics,不确定是否是一个问题。

如何解决此问题? 我对XPC连接的搜索似乎未返回与我类似的问题。 我什至不知道什么是XPC连接,所以为什么无论如何在我的应用程序中这是什么?

编辑:我找到了解决此问题的方法。 我不能真的说这是解决办法。

设置为true时,在使用方法self.navigationController?.popViewControllerAnimated时发生崩溃。 我碰巧将其设置为false,崩溃停止了(现在过渡看起来很糟糕)。

我不知道为什么会这样,只会增加我的困惑。

trans by 2019-12-25T12:42:46Z

ios-Xcode 7-代码覆盖率数据生成失败

当我运行测试时,我得到一个错误:

代码覆盖率数据生成失败。
无法从“ UIDevice”中检索配置文件数据文件。

enter image description here

在控制台上打印警告:

等待120秒等待模拟器启动,当前状态为1。

是什么原因?

trans by 2019-12-24T03:44:02Z

xcode-iOS 9初始屏幕为b

升级到iOS9后,我的应用程序的启动屏幕均为纯黑色。

有人知道这是为什么吗? 其中有些正在使用.xib启动画面,有些正在使用图像,但是现在它们都只是黑色。 是否必须使用Xcode 7构建应用程序才能使启动屏幕在iOS9中正常工作? 有没有人看过一些文档,说明这是否是苹果公司的重大突破?

谢谢!

更新:再次浏览这些应用程序,似乎我的旧应用程序只有一个启动图像,而没有.xib仍无法正确显示,因此问题似乎与启动屏幕.xib有关。

UPDATE2:正如hagi在评论中指出的那样,在重新安装了相同的二进制文件后,它又开始工作,因此原因可能是,每当安装该应用程序时,该xib都会生成启动映像,并将其存储在某个地方,然后在升级到iOS9时, 由于某种原因(最有可能是意外的Apple bug),生成的图像将被清除,并且该应用程序最终不会飞溅。 这就是为什么老式启动图像仍然安全并且不受此影响的原因,因为它们已经被烘焙到应用程序中了。

我会将其报告为Apple的错误。

trans by 2019-12-23T20:05:04Z

1 2 3 下一页 共3页