小编Mic*_*lch的帖子

如何链接到第三方Swift框架

在过去的24小时内,我尝试使用两个不同的第三方Swift库:SwiftzSleipnir.我认为它应该相当容易,因为这两个项目只是简单地提供了如何使用它们的草图.但是,两者都没有为我提供足够的细节.我已经尝试了以下所有方法:将项目添加到我的工作区,将已编译的框架拖放到我的项目导航器中,将框架添加到"Link Binary with Libraries"阶段.在所有情况下,我都收到链接器错误,通知我无法找到框架.

我只需要一个实际文档的链接来解释如何执行此操作.我找不到它.

编辑:忘掉第三方图书馆了.你如何消费自己的图书馆?我有一个我编写的Cocoa Framework库.现在我已将命令行项目添加到同一工作区.如果我可以从命令行应用程序访问我的新框架,那肯定会很好.我点击了我的命令行项目.单击Build Phases并将我的自定义框架拖到Link Binary with Libraries部分.一切都很好.运行我的应用程序时,我收到以下错误:

dyld: Library not loaded: @rpath/libswiftAppKit.dylib
  Referenced from: /Users/mgwelch/Library/Developer/Xcode/DerivedData/SwiftParsing-
  btkaoklayoffujgrkklfyffpipih/Build/Products/Debug/Parsing.framework/Versions/A/
  Parsing
  Reason: image not foundI
Run Code Online (Sandbox Code Playgroud)

swift

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

如何将XCTAssertNil与可选结构一起使用?

更新3/23/2016我刚刚测试了下面的原始示例代码,它在XCode 7.3中编译得很好.看起来像XCTAssertNil一直在更新以获取类型的表达式() throws -> Any?因此可能不再需要这个问题和答案(除了旧版本的编译器一段时间.)

我正在使用XCTest在XCode中编写我的第一个单元测试.我不确定如何利用XCTAssertNil,因为它似乎只在使用某些类型时编译.它似乎可以使用由类和内置基元构成的选项,但不适用于结构.如何使用这种方法呢?

对于结构,编译器会给出以下错误(假设'SimpleStruct'是您的类型的名称):

'SimpleStruct' is not identical to 'AnyObject'
Run Code Online (Sandbox Code Playgroud)

这是一个简单的测试类,用于说明一些编译好的类型和其他不编译的类型.

import Cocoa
import XCTest

struct SimpleStruct {
}

class SimpleClass {
}

class Tests: XCTestCase {

    func testl() {
        var simpleStruct:SimpleStruct? = nil;
        var simpleClass:SimpleClass? = nil;
        var i:Int? = nil;
        var s:String? = nil;
        var tuple:(Int,String)? = nil;

        XCTAssertNil(simpleStruct); // compile error
        XCTAssertNil(simpleClass); // OK
        XCTAssertNil(i); // OK
        XCTAssertNil(s); // OK
        XCTAssertNil(tuple); // compile error
    }

}
Run Code Online (Sandbox Code Playgroud)

xctest swift

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

如何使用restkit获取简单的json字符串数组

我的问题是重复的

RestKit:如何获取简单的JSON字符串数组?

然而,虽然原作者发现答案有帮助,但我仍然输了.这个问题有两个单独的引用,这些引用都不足以帮助我(一个完整的初学者KVCRestKit).

这里有一个参考,给出了这个示例代码

RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[Whatever class]];
[mapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:nil toKeyPath:@"someAttribute"]];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping pathPattern:@"/whatever" keyPath:nil statusCodes:nil];
Run Code Online (Sandbox Code Playgroud)

无论什么课程应该是什么?应该是NSString吗?或者这是否意味着我应该创建一个包含一个属性为NSArray*的包装类?

什么是@"someAttribute"应该是什么?同样,这是否意味着一个包装类,在这种情况下,someAttribute将是我的包装类上属性的名称,即NSArray*?

另一个参考是在这里,虽然它显示从数组提取到"包装类",但包装类只有一个NSNumber,而不是一个数组.因此,不清楚如何将该示例转换为适用于获取整个数组的示例.

作为参考,服务器返回一个字符串数组,就像原始问题一样:["string1","string2","string3"].

UPDATE

这是我尝试过的代码.我已经创建了一个包装类.

@interface CannedResponse : NSObject

@property (strong, nonatomic) NSString * response;

@end
Run Code Online (Sandbox Code Playgroud)

这是映射:

RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[CannedResponse class]];
[mapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:nil toKeyPath:@"response"]];
[manager addResponseDescriptor:[RKResponseDescriptor responseDescriptorWithMapping:mapping method:RKRequestMethodGET pathPattern:RESPONSES_API_PATH keyPath:nil statusCodes:nil;
Run Code Online (Sandbox Code Playgroud)

我正在打电话 getObjectsAtPathForRouteName

我得到的是一系列CannedReponses预期的.但是,而不是NSString被放入响应属性.我得到了一个RKMappingSourceObject.现在RKMappingSourceObject确实包含正确的字符串.

我将通过RestKit控制台中的日志记录查看是否可以收集更多线索.

更新#2

如前所述 …

objective-c ios kvc restkit-0.20

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

将数组中的第一个索引转换为 int

我有一个名为 parentRows 的字符串列表,其中包含如下所示的字符串:

"176,c-4454"
"177,c-34324"
Run Code Online (Sandbox Code Playgroud)

我曾经.split(',')把它们放在一个string[]

var arr = parentRow.Split(',');
Run Code Online (Sandbox Code Playgroud)

因为基本上我想要的是,当我遍历列表时,如果用户输入匹配arr[1],那么我想转换arr[0]为 anint并将其存储在用户信息中。

代码片段:

"176,c-4454"
"177,c-34324"
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我已经尝试过了, int asInt = arr[0].Select(s => int.Parse(s)); 但我只是得到了错误

"Error CS1503 Argument 1: cannot convert from 'char' to 'System.ReadOnlySpan<char>"

一个人将如何去实现我想要的?

先感谢您!

c#

0
推荐指数
1
解决办法
64
查看次数

标签 统计

swift ×2

c# ×1

ios ×1

kvc ×1

objective-c ×1

restkit-0.20 ×1

xctest ×1