小编Aar*_*her的帖子

我可以在协议中使用init函数吗?

当我尝试以这种方式实现我的协议时:

protocol Serialization {
    func init(key keyValue: String, jsonValue: String)
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:函数声明中的预期标识符.

为什么我收到此错误?

protocols initialization swift swift-protocols

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

Ranging Beacons仅适用于app运行?

当应用程序没有运行时,我很难让它工作.我已locationManager:didRangeBeacons:inRegion:实现并在应用程序在前台或后台运行时调用它,但是当我退出应用程序并锁定屏幕时它似乎没有做任何事情.位置服务图标消失了,我永远不知道我进入了信标范围.LocalNotification应该仍然有效吗?

我在背景模式(XCode 5)中选择了位置更新和使用蓝牙LE配件我认为我不需要它们.

任何帮助非常感谢.

-(void)watchForEvents { // this is called from application:didFinishLaunchingWithOptions
    id class = NSClassFromString(@"CLBeaconRegion");
    if (!class) {
        return;
    }

    CLBeaconRegion * rflBeacon = [[CLBeaconRegion alloc] initWithProximityUUID:kBeaconUUID identifier:kBeaconString];
    rflBeacon.notifyOnEntry = YES;
    rflBeacon.notifyOnExit = NO;
    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;
    [self.locationManager startRangingBeaconsInRegion:rflBeacon];
    [self.locationManager startMonitoringForRegion:rflBeacon];
}

-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {
    if (beacons.count == 0 || eventRanged) { // breakpoint set here for testing
        return;
    }

    eventRanged = YES;
    if (backgroundMode) { // this …
Run Code Online (Sandbox Code Playgroud)

ios ios7 ibeacon

24
推荐指数
4
解决办法
3万
查看次数

什么clang-format选项控制方法调用参数的格式?

我知道人们对如何在Objective-C中格式化方法调用有不同的看法,即

[self presentViewController:scanViewController
                   animated:YES
                 completion:nil];
Run Code Online (Sandbox Code Playgroud)

VS

[self presentViewController:scanViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

我使用.clang格式文件中的哪些选项来控制这种缩进?(如果我不想要它,冒号排队等)

还有,这只是我还是这个格式无知的块?注意成功块的if语句不是缩进的,NSLog函数也不是故障块.

[self.client getPath:path
    parameters:parameters
    success:^(AFHTTPRequestOperation *operation, id responseObject) {
    if ([from_id isEqualToString:self.from_id]) {
        self.image.image = [UIImage imageWithData:responseObject];
    }
    }
    failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(error.description);
    }];
Run Code Online (Sandbox Code Playgroud)

formatting objective-c clang clang-format

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

如果一个值具有关联值,则对枚举值的测试失败?

我在Playground测试这个,我不知道该怎么做.使用没有关联值的普通枚举,一切都很好.

enum CompassPoint {
    case North
    case South
    case East
    case West
}

var direction = CompassPoint.East

if direction != .West {
    println("Go West!")
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我的一个枚举具有关联值,则方向测试将失败,并显示以下错误:找不到成员'West'

enum CompassPoint {
    case North(Int)
    case South
    case East
    case West
}

var direction = CompassPoint.East

if direction != .West {
    println("Go West!")
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能进行这项测试?

enums swift

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

Xcode 10的胖框架脚本?

我在我的方案中的归档后期使用这个脚本来制作FAT二进制框架.一个可以在模拟器和实际设备上工作.

https://gist.github.com/gauravkeshre/eabb2a13ef6d673fadec84ca60b56b05

有谁知道如何将其转换为使用Xcode 10?

使用遗留构建系统可以修复错误,但我宁愿不依赖它.

这是脚本本身:

exec > /tmp/${PROJECT_NAME}_archive.log 2>&1

UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal

if [ "true" == ${ALREADYINVOKED:-false} ]
then
echo "RECURSION: Detected, stopping"
else
export ALREADYINVOKED="true"

# make sure the output directory exists
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"

echo "Building for iPhoneSimulator"
xcodebuild -workspace "${WORKSPACE_PATH}" -scheme "${TARGET_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone XS' ONLY_ACTIVE_ARCH=NO ARCHS='i386 x86_64' BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" ENABLE_BITCODE=YES OTHER_CFLAGS="-fembed-bitcode" BITCODE_GENERATION_MODE=bitcode clean build

# Step 1. Copy the framework structure (from iphoneos build) to the universal folder
echo "Copying to output …
Run Code Online (Sandbox Code Playgroud)

frameworks fat-binaries xcode10

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

如何显示 Swift 包中的代码覆盖率?

在我的 M1 mac 上,使用 Xcode 13.3,我\xc2\xa0 创建了一个包并显示了代码覆盖率栏(编辑器菜单 \xe2\x80\x93> 代码覆盖率)。

\n

运行测试后,源代码中根本没有代码覆盖率的指示。

\n

测试包时如何获得代码覆盖率?

\n

xcode code-coverage swift-package

11
推荐指数
2
解决办法
3076
查看次数

无法在派生类的便捷初始值设定项中初始化常量属性

以下是操场上的示例代码.我不明白的是为什么b子类中的变量必须是var类型而不能是let.有人可以帮我理解吗?

class Base1 {
    init() { }
}

class Sub1: Base1 {
    let b: Int

    override init() {
        super.init()
    }

    convenience init(b: Int) {
        self.b = b  // Cannot assign to property: 'b' is a 'let' constant
        self.init()
    }
}
Run Code Online (Sandbox Code Playgroud)

initialization subclass swift

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

在 SwiftUI 之外使用 SwiftData

我想创建一个类来定期处理一些数据。我没有使用过CoreData。在 SwiftUI 视图之外,如何获取模型容器和上下文以便检索和添加对象?WWDC 视频中显示的代码let context = self.newSwiftContext(from: Trip.self)并不是不言自明的。

swift-data xcode15

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

如何按多个值对结构数组进行排序?

我已经有了按1值排序的代码,如下所示,但我想知道如何使用多个值进行排序?我想按set排序,然后按someString排序.

一个是整数,在这种情况下一个是字符串.我曾考虑将整数转换为字符串,然后连接它们,但认为必须有更好的方法,因为我将来可能有2个整数排序.

struct Condition {
    var set = 0
    var someString = ""
}

var conditions = [Condition]()

conditions.append(Condition(set: 1, someString: "string3"))
conditions.append(Condition(set: 2, someString: "string2"))
conditions.append(Condition(set: 3, someString: "string7"))
conditions.append(Condition(set: 1, someString: "string9"))
conditions.append(Condition(set: 2, someString: "string4"))
conditions.append(Condition(set: 3, someString: "string0"))
conditions.append(Condition(set: 1, someString: "string1"))
conditions.append(Condition(set: 2, someString: "string6"))

// sort
let sorted = conditions.sorted { (lhs: Condition, rhs: Condition) -> Bool in
    return (lhs.set) < (rhs.set)
}

// printed sorted conditions
for index in 0...conditions.count-1 {
    println("\(sorted[index].set) - …
Run Code Online (Sandbox Code Playgroud)

sorting swift

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

我如何滥用 NavigationStack?

我在尝试使用新的 NavigationStack 时有一个小代码示例,但出现错误:A NavigationLink ispresenting a value of type \xe2\x80\x9cTransactionRoute\xe2\x80\x9d but there is nomatching navigation destination from链接的位置。链接无法激活。

\n

我究竟做错了什么?

\n
    import SwiftUI\n\n    struct TransactionRoute: Identifiable {\n        let id = UUID()\n        let realm: TransactionRealm\n        let transaction: String?\n    }\n\n    extension TransactionRoute: Equatable, Hashable {\n        static func == (lhs: TransactionRoute, rhs: TransactionRoute) -> Bool {\n            lhs.id == rhs.id\n        }\n\n        public func hash(into hasher: inout Hasher) {\n            hasher.combine(id)\n        }\n    }\n\n    enum TransactionRealm: Int {\n        case basic\n        case upcoming\n        case recurring\n    }\n\n    struct ContentView: …
Run Code Online (Sandbox Code Playgroud)

swift swiftui swiftui-navigationstack

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