小编Jee*_*eef的帖子

如何识别Swift是否使用Optimization进行编译

正如你们中的一些人在完全调试模式下运行时可能意识到的那样,swift可能非常慢.有没有办法可以在代码或GUI中打印出一条消息,让我知道我是否忘了正确地编译它.我正在以混合模式运行,所以如果有人能给我Objc和Swift代码那将是非常棒的.

谢谢!

xcode swift

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

Xcode验证与提交到App Store

我一直在推的应用程序进行到App Store有一段时间了,但我从来没有真正缠着我的头之间有什么区别Validate...Submit to App Store...了.我总是假设Submite到App Store ......任务自行运行验证.

我是否通过运行单独的验证任务来浪费时间

xcode ios

9
推荐指数
2
解决办法
6923
查看次数

如何仅向objc公开swift函数

我有一个swift框架,我在Objective C应用程序中使用它.我有一个Location有两个参数的课程:

///Latitude in Decimal Degrees
public var lat : Double?

///Longitude in Decimal Degrees
public var lon : Double?
Run Code Online (Sandbox Code Playgroud)

目标C无法访问它们,因为它们是可选项.我希望保持一个快速的班级在这里工作,所以我的"解决方法"是@objc为班级添加一些方法 - 但我不希望它们可以快速访问.

///Objective C Extensions to allow easier Access
extension LocationMessage {

@objc var getLat : Double {
    if (lat != nil) {
        return lat!
    }
    return -91;
 }

@objc var getLon : Double {
    if (lon != nil) {
        return lon!;
    }
    return -181;
}
}
Run Code Online (Sandbox Code Playgroud)

所以这是一个问题:

1)我可以把这个扩展放到框架中,但有没有办法"隐藏"swift无法调用它?

2)我想我可以在我的Objective C应用程序中编写一个swift文件 - 它将扩展添加到类中 - 这将是要走的路吗? …

xcode objective-c ios swift

9
推荐指数
2
解决办法
2115
查看次数

在一行代码中使用Swift中的字符串数组构建CSV

我在swift中有一个字符串数组,我想我能做到:

array.join(",") 返回以逗号分隔的元素列表

我得到的错误是: Array<String> not convertible to 'String'

如何在尽可能少的代码中正确执行此操作.

我可以用一个循环来构建一个字符串,但我认为有一个更简单的方法来做到这一点.

ios swift

8
推荐指数
3
解决办法
3785
查看次数

Int和Double在Swift中共享一个共同的父类

我想知道是否有一种更简单的方法将这两个初始化程序编写为通用的初始化程序

public required init(_ value : Double) {
    super.init(value: value, unitType: unit)
}

public required init(_ value : Int) {
    let v = Double(value)
    super.init(value: v, unitType: unit)
}
Run Code Online (Sandbox Code Playgroud)

就像是:

public init<T>(_value : T) {
    let v = Double(T)
    super.init(value: v, unitType: unit)
}
Run Code Online (Sandbox Code Playgroud)

(当然不编译)

我查看了Int和Double的代码,并且遗漏了将它们联系在一起的任何真实的东西.

generics double int swift

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

X不是Y的成员类型

我在swift项目中遇到了模块名称间距的问题.

我在一个新项目中试过这个,一切正常:

我有2个模块,其中包含相同的类名,我可以Module.Class毫无问题地引用该类.

我有一个现有的快速项目,我无法让这个工作.我一直在收到错误

在此输入图像描述

因此,你可以看到我是否不尝试Module-Scope类,一切正常.

(是的,我已尝试过并且没有.Type添加).

所以我假设我的编译器设置中有一些东西.我唯一能想到的是我的LocationMessage类不是在主DataManager"类"文件中定义的,而是在不同的文件中定义的.

但我真的无法做出正面或反面的事情.有什么建议?

项目结构

框架:DataManager

  • DataManager.swift
  • LocationMessages.swift

框架:ReferenceTest

  • File.swift

所以我的问题是,File.swift我想引用定义一个类LocationMessages.swift里面DataManager.framework 的类IS公众

@objc(DMLocationMessage)
final public class LocationMessage : ParsedMessage {
Run Code Online (Sandbox Code Playgroud)

xcode swift

8
推荐指数
4
解决办法
4317
查看次数

如何从_NSCoreDataTaggedObjectID获取对象或值

我跟随苹果的例子:(https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/CoreDataSnippets/Articles/fetchExpressions.html)来获取不同的"值"

NSEntityDescription *ahrsMessage = [NSEntityDescription entityForName:@"AHRSMessage" inManagedObjectContext:self.managedObjectContext];
    NSFetchRequest *distinctFetch = [NSFetchRequest new];
    [distinctFetch setEntity:ahrsMessage];
    [distinctFetch setResultType:NSDictionaryResultType];
    [distinctFetch setReturnsDistinctResults:YES];
    [distinctFetch setPropertiesToFetch:@[@"flightRecordings"]];

    NSError *e = nil;
    id requestedValue = nil;
    NSArray *objects = [self.managedObjectContext executeFetchRequest:distinctFetch error:&e];
    if (objects == nil) {
        NSLog(@"ERROR");
    }


    for (NSDictionary *dict in objects) {
        NSLog(@"dict: %@", dict);

       [dict objectForKey:@"flightRecordings"];

    }
Run Code Online (Sandbox Code Playgroud)

当我objects[1]在调试器中探索值时,我看到我的密钥是_PFEncodedString *,我的值是_NSCoreDataTaggedObjectID * 我不清楚的是如何实际上从我的数据类型中取回我的CoreData对象.

core-data ios ios7

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

在iOS中实例化后台runloop

用例

我有一组进程,每个进程都需要以一定的执行速率(每秒3次,每10秒一次等)在自己的后台线程上运行.

相信 CFRunLoop和/或NSRunLoop提供此功能

如何创建(在swift中)执行定期任务的新后台线程?

multithreading ios swift

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

将快速结构暴露给ObjC

据我所知,没有办法在Objective-c代码中使用Swift结构.是否有最佳实践方法将swift结构"包装"到目标C类中,以便我可以在新代码中使用该结构但在遗留代码中保留类似的数据结构?

我能想到的最好的代码就是代码很重 - 但它应该是制作一个协议,然后实现一个使用该协议的swift结构,然后是一个具有结构内部成员并公开方法的目标C类潜入它.

protocol ParsedMessageProtocol {
    var timeStamp : NSDate { get }
    var msgData : NSData? { get }
    var source : String { get }

    init(data : NSData)
    init(rawData data : NSData, dataSource : String)
    init(date : NSDate)
}

@objc(DMParsedMessage)
class ParsedMessageClass : NSObject, ParsedMessageProtocol {

    private var swiftData : ParsedMessageStruct;

    required init(data : NSData) {
        self.swiftData = ParsedMessageStruct(data: data);
    }
    required init(date : NSDate) {
        self.swiftData = ParsedMessageStruct(date: date);
    }

    required init(rawData …
Run Code Online (Sandbox Code Playgroud)

struct objective-c ios swift

6
推荐指数
0
解决办法
995
查看次数

如何将自定义 SSL 证书注入 springbok bootBuildImage

我不确定这是否可能不使用自定义基本映像,但我正在尝试使用自签名 SSL 证书在公司防火墙后面构建映像:

> Task :bootBuildImage
Caching disabled for task ':bootBuildImage' because:
  Build cache is disabled
Task ':bootBuildImage' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Building image 'docker.io/library/temp:latest'

 > Pulling builder image 'gcr.io/paketo-buildpacks/builder:base-platform-api-0.3' ..................................................
 > Pulled builder image 'gcr.io/paketo-buildpacks/builder@sha256:200fb7945ef0f4a3c79befb1262fd592f54ba7b7ffcc8a37716434dd11d0e5e9'
 > Pulling run image 'gcr.io/paketo-buildpacks/run:base-cnb' ..................................................
 > Pulled run image 'gcr.io/paketo-buildpacks/run@sha256:f7f27462fb513a70370322ada08440a642d24a700056d4c6b8cbb344610bf486'
 > Executing lifecycle version v0.7.5
 > Using build cache volume 'pack-cache-739c2c210811.build'

 > Running creator
    [creator]     ---> DETECTING
    [creator]     ======== Results ========
    [creator]     pass: paketo-buildpacks/bellsoft-liberica@2.7.1 …
Run Code Online (Sandbox Code Playgroud)

ssl spring gradle spring-boot

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