小编Luk*_* In的帖子

后台使用单个NSURLSession uploadTaskWithRequest上传多个图像

我想使用单一uploadTaskWithRequest方法在后台上传多个图像.尝试以下代码时,后台会话不支持从NSData返回上载任务...请如何实现此目的

func createRequest (param : NSDictionary ,imagearray :NSMutableArray, strURL : String) -> NSURLRequest {

    let boundary = generateBoundaryString()

    let url = NSURL(string: strURL)
    let request = NSMutableURLRequest(URL: url!)

    request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
    request.HTTPMethod = "POST"
    request.HTTPBody = createBodyWithParameters(param, image_array:imagearray,boundary: boundary);

    return request
}

   func createBodyWithParameters(parameters: NSDictionary,image_array:NSMutableArray,boundary: String) -> NSData {
 let body = NSMutableData()         
for (key, value) in parameters {
      if(value is String || value is NSString){
            body.appendString("--\(boundary)\r\n")
            body.appendString("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n")
            body.appendString("\(value)\r\n")
        }
    }
    var i = 0; …
Run Code Online (Sandbox Code Playgroud)

background ios nsurlsession swift

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

如何使用 REST API 或 SDK 将 iOS APNs 身份验证令牌上传到 Firebase?

有没有办法使用 REST API 或 SDK 为 iOS 应用程序设置 Firebase Cloud Messaging (FCM)?

当前 (v1beta) API 提供了将应用程序添加到项目以及下载 GoogleService-Info.plist 文件的功能,但似乎没有提供任何上传启用 FCM 所需的 APNs Auth 令牌的方法。

背景:我管理着约 100 个使用 Firebase Cloud Messaging 的 iOS 应用程序。目前,我需要使用 Firebase 控制台手动上传每个应用程序的 APNs 身份验证令牌。这需要在应用程序设置时执行一次,并在身份验证令牌过期时定期执行。我正在寻找一种使用脚本(最好是无人值守的 CI)来自动执行此操作的方法,这样我就不需要手动执行此操作。

ios firebase firebase-cloud-messaging

11
推荐指数
0
解决办法
757
查看次数

无法使用Application Loader上传iOS应用

厌倦了用苹果打在墙上撞墙,所以我在这里问这个问题.

应用程序加载器陷入"将软件包上传到iTunes Store ...",显示616字节的37.7 MB(0字节/秒).截图:

在此输入图像描述

它保持这种方式大约20分钟,然后显示一个不确定的错误消息:

发生了异常:已检测到传输已停止并已中止.请再试一次.

有一次,进度条跳到10MB,似乎上传了一段时间,然后出现错误信息.

在此输入图像描述

错误消息未显示与问题相关的任何信息,或提供有关问题原因或潜在解决方案的任何提示.错误的一行提示"诊断模式"但不提供进一步的信息.截图如下:

在此输入图像描述

我尝试了在其他地方推荐的解决方法,在"net.properties"文件中设置"https.proxyPort = 80".这没有效果.

Application Loader在过去,其他网络和计算机上一直存在问题,没有任何理由.我现在上网的情况很好.我使用的每个其他网站和服务都很完美.我可以从其他服务器上传和下载文件,我可以通过Google Play提交相同的应用程序,没有任何问题.

联系Apple没有帮助.第一封电子邮件回复说我需要验证地址和端口是否可访问,并链接到Using Application Loader文档.

当我向Apple询问"验证"是什么意思时,他们回答说他们不愿意提供帮助,并建议在线搜索解决方案.

我在开发论坛上发布了同样的问题并且没有收到任何回复.互联网上的其他帖子建议"去图书馆",或"从手机上传",这些都不是实用的解决方案.

这个问题有没有已知的解决方案?我该如何诊断问题?错误中提到的"诊断模式"是什么?

ios application-loader

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

使用cocoapods管理静态库中的依赖项

我在一个应用程序上使用CocoaPods,其中工作区由一个主应用程序项目组成,一些静态库作为子项目,每个都有自己的依赖项.静态库在编译时链接到主项目,主要作为封装和组织代码的手段而存在.

CocoaPods将依赖关系链接到子项目的静态库中会出现问题.如果这些静态库中的两个或多个具有相同的依赖关系,则它们不能同时链接到主项目中,因为这样做会导致重复的符号.

我目前的解决方法是在每个子项目中创建一个"虚拟"目标,并将其设置为pod文件中的链接目标.真正的目标使用CocoaPods生成的xcconfig文件,而没有链接任何依赖项.

虽然这确实有效,并且是我能找到的最简单的解决方案,但它仍然带来了在每个项目中拥有虚拟目标的额外不必要的负担,例如:

xcodeproj 'MyApp/MyApp.xcodeproj'
target :'MyApp' do
    xcodeproj 'MyApp/MyApp.xcodeproj'

    pod 'MBProgressHUD',            '0.9'

    link_with 'PodDummy'
end
Run Code Online (Sandbox Code Playgroud)

这种方法的另一个缺点是仍然需要在主项目中指定所有依赖项,以便它们与最终的可执行文件链接.


所以我的问题是:如何在静态库项目中使用CocoaPods,而不将依赖项链接到二进制文件中?

或者更好的是:我是否可以仅在静态库子项目中指定依赖项,并让CocoaPods找出需要在主项目中链接的内容,解决过程中的重复项?

我想只包括pod文件中的主项目,并让子项目手动引用标题的"Pods"目录.

过去似乎已经围绕这个问题进行了一些讨论,但我看不出它是什么,如果有的话.相关讨论是:

  1. https://github.com/CocoaPods/CocoaPods/issues/1335
  2. https://github.com/CocoaPods/CocoaPods/issues/840
  3. iOS静态库+ CocoaPods和重复符号错误
  4. Kiwi和CocoaPods带有静态共享库

xcode dependency-management static-linking cocoapods

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

最优灵活的盒子布局算法

我正在实现W3C定义的CSS3灵活盒子布局模块,类似于Mozilla的xul盒子模型.虽然这些标准规定了模型应该如何表现,但它们没有提供有关如何实施模型的任何细节.

我感兴趣的模型部分是:

  1. 盒子有宽度和高度.
  2. 盒子可以包含其他盒子.
  3. 容器盒(父盒)负责确定它们所包含的盒子(子盒子)的大小和位置.
  4. 盒具有可以是水平或垂直的方向.方向确定子框的定位和调整大小.
  5. 儿童盒可以是灵活的或不灵活的.如果子框不灵活,则以width和height参数中指定的大小绘制.如果它是灵活的,则调整大小以适应父容器中的可用空间.
  6. 灵活性与同一容器中的其他子盒相对,具有较高灵活性的盒子比具有较低灵活性的盒子的大小更大.
  7. 子框可以限制为最小或最大尺寸.如果子框是灵活的,则父框永远不会将其调整为低于最小大小或高于最大大小.

特征1-5可以非常有效地实现.特征6是有问题的,因为我能想出的最有效的算法非常幼稚.算法的工作原理如下:

  1. 将所有框放在一个列表中.
  2. 循环遍历每个子框并使用灵活性调整其大小,以确定调整大小的数量.
  3. 如果大小超过其中一个限制,则将框大小设置为限制并将其从列表中删除,然后从列表的开头开始.

第3步是效率下降的地方.例如,如果列表中有十个项目,并且最后一个项目具有约束,则算法计算前九个项目的大小,然后当它达到第十个项目时,它需要重做所有计算.我已经考虑保持列表排序并首先调整所有约束框的大小,但是这会带来增加复杂性的成本和排序列表的开销.

我希望有一个公认的最佳解决方案,因为这是浏览器和框架(XUL,.Net,Flex等)中相当常见的功能.

algorithm optimization layout

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