小编Ahm*_*d F的帖子

Swift中的代表示例

我一直在努力学习如何使用协议进行委派.我理解了一切,但我想不到何时使用委托除了使用表视图和可能滚动视图.

一般来说,何时使用授权?

delegates design-patterns protocols delegation swift

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

我应该为ios开发本机使用哪种图像格式?SVG还是PNG?

我从过去1个多月开始进入iOS开发,我所经历的是我必须为iphone放置1x 2x 3x的图像,然后为ipad放置2x视网膜.其中一位经验丰富的设计师建议我使用svg格式,因为它会根据屏幕尺寸进行自我调整.

所以我提出的问题是:

  1. 我可以使用svg而不是png吗?
  2. 如果我使用svg,是否有必要将图像分为ix和ipad的2x和3x?
  3. svg中的图像是否会根据手机尺寸进行缩放而不会丢失质量?

如果根据您的经验有任何其他信息请分享.

谢谢.

svg png assets ios

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

何时使用Semaphore而不是Dispatch Group?

我会假设我知道如何使用DispatchGroup,为了解问题,我尝试过:

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        performUsingGroup()
    }

    func performUsingGroup() {
        let dq1 = DispatchQueue.global(qos: .userInitiated)
        let dq2 = DispatchQueue.global(qos: .userInitiated)

        let group = DispatchGroup()

        group.enter()
        dq1.async {
            for i in 1...3 {
                print("\(#function) DispatchQueue 1: \(i)")
            }
            group.leave()
        }

        group.wait()

        dq2.async {
            for i in 1...3 {
                print("\(#function) DispatchQueue 2: \(i)")
            }
        }

        group.notify(queue: DispatchQueue.main) {
            print("done by group")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果 - 预期 - 是:

performUsingGroup() DispatchQueue 1: 1
performUsingGroup() DispatchQueue …
Run Code Online (Sandbox Code Playgroud)

semaphore grand-central-dispatch ios swift

18
推荐指数
5
解决办法
6678
查看次数

entitlements.plist文件有什么用?

我对权利文件有一些疑问.

1)权利文件的用途是什么.

2)如果我不添加它会发生什么.

3)myApp.entitlements和entitlements.plist有什么区别?

entitlements ios

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

IOS App提交路由应用程序

我想在Itunes Connect中提交我的应用以供审核,但是当我尝试提交时,我收到错误消息:

要将此应用程序配置为IOS路由应用程序,请在iTunes Connect上的"我的应用程序"中的应用程序版本页面上上载路由应用程序覆盖文件.要将您的应用程序配置为IOS路由应用程序,应用程序的Info.plist必须包含MKDirectionsApplicationSupportedModes密钥.

因此,在我的项目中,在功能中,地图已关闭.我有MapKit.framework在我的项目中,因为我使用了地图,但我没有显示路由信息,也没有在我的应用程序中提供它.事实上,我的项目中的这个框架导致了这个ITunes Connect错误,如果是这样,我该如何修复它.通过修复它,我希望它关闭路由.

我的应用程序不是为了提供路由信息,也不是要将其设置为iOS路由应用程序.

任何帮助,将不胜感激.

我正在使用XCode 6.

itunesconnect submit ios

14
推荐指数
2
解决办法
8862
查看次数

字符串数组减少

我试图通过reduce函数加入String数组的元素.现在尝试了一下,但我无法得到问题的确切原因.这是我认为应该做的伎俩.我也尝试了其他替代方案,但考虑到巨额我会等待一些输入:

var genres = ["towel", "42"]
var jointGenres : String = genres.reduce(0, combine: { $0 + "," + $1 })
Run Code Online (Sandbox Code Playgroud)

错误:

..:14:44:无法使用类型'的参数列表调用'+'(IntegerLiteralConvertible,combine:(($ T6,($ T6,$ T7) - >($ T6,$ T7) - > $ T5) - >($ T6,($ T6,$ T7) - > $ T5) - > $ T5,(($ T6,$ T7) - >($ T6,$ T7) - > $ T5,$ T7) - > (($ T6,$ T7) - > $ T5,$ T7) - > $ T5) - >(($ T6,($ T6,$ T7) - > $ T5) …

reduce swift

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

在Xcode中添加Firebase时如何解决"重复符号"

我无法解决错误"重复符号".

错误是

duplicate symbol _GSDK_NSClassFromString in: .../Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
 /Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)

duplicate symbol _GSDK_objc_getClass in: .../Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)

duplicate symbol _GSDK_objc_getProtocol in:    ...Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
    .../Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)

duplicate symbol _GSDK_objc_lookUpClass in:        ...Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
    ...Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)

ld: 4 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我更新并安装了Podfile.但它没有用.

Pod文件

target 'game' do

  # Pods for game
  pod 'Firebase'
  pod 'Firebase/AdMob'
end
Run Code Online (Sandbox Code Playgroud)

我之前可以添加Firebase.但是当我不小心删除"FirebaseCore.framework"时.之后我删除了Pod并重新安装了Firebase,但它没有用.

我该如何解决?

xcode objective-c ios firebase swift

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

iOS中的开发和生产SSL证书有什么区别?

这可能是一个奇怪的问题,但它让我很困惑.为什么我们必须在iOS中为推送通知创建开发和生产SSL证书?开发证书和生产证书有什么区别?

我正在开发一个带推送通知的iOS应用程序(由自托管的解析服务器处理),当我将环境从开发切换到生产(带有生产证书)时,我的设备上不再收到推送通知.一旦我将此应用程序上传到应用程序商店(然后,它将在生产中),它是否会起作用?或者,我可以"测试"我的生产环境,以确保通知在我的应用程序商店发布后可以在我的应用程序中运行吗?

xcode apple-push-notifications ios

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

Xcode,在哪里分配segue标识符

请原谅我的初学者问题.我知道我可以像这样切换到另一个屏幕(ViewController)

self.performSegueWithIdentifier ("SecondViewController", sender: self)
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到在哪里指定我的第二个屏幕的id,我只是找到了Storyboard ID,是吗?

我已经尝试过,只是因为以下错误而收到了崩溃:

Receiver()没有带标识符'SecondViewController'的segue

任何的想法?谢谢

xcode ios uistoryboard uistoryboardsegue swift

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

使用未声明的类型'UNUserNotificationCenter'

我想在应用程序处于前台时显示推送通知的横幅.我实现这个方法来显示通知:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
        {
            completionHandler([.alert, .badge, .sound])
        }
Run Code Online (Sandbox Code Playgroud)

但是这个错误收到了未申报类型'UNUserNotificationCenter'的使用 在此输入图像描述

ios swift unusernotificationcenter

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