小编Pre*_*eek的帖子

重写Enum init?(rawValue:String)不是可选的

如果rawValue init将返回nil,我想从rawValue为init for Swift中的init返回默认值.现在我有这样的事情:

public init(fromRawValue: String){
        self = Language(rawValue: fromRawValue) ?? .English
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个,因为它是全新的初始化程序.我试着做这样的事情:

public init(rawValue: String){
        self = Language(rawValue: fromRawValue) ?? .English
}
Run Code Online (Sandbox Code Playgroud)

但我得到运行时异常,访问不当.我可以以某种方式使它工作或我只是必须使用这个新的,我不能覆盖原来的不是可选的?

我想知道是否有可能从rawValue覆盖原始init而不是使用可用的全新的解决方法.

enums initialization ios swift

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

std :: vector作为模板函数参数

我想创建一个类方法,它将std :: vector引用作为参数,我想将它与不同类型的数据一起使用.

该函数应如下所示:

void some_function(const std::vector & vect){ //do something with vector }
Run Code Online (Sandbox Code Playgroud)

我想用它来举例如:

std::vector<int> v1;
some_function(v1);
std::vector<string> v2;
some_function(v2);
Run Code Online (Sandbox Code Playgroud)

我希望我明白我的观点.我是否必须制作这样的模板方法:

template<class T>
void some_function(std::vector<T> & vect){}
Run Code Online (Sandbox Code Playgroud)

或者我可以用另一种方式吗?如果必须,请告诉我如何在课堂上编写该方法.

感谢帮助!

c++ templates stdvector

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

IB Designables:无法呈现和更新Google地图的自动布局状态

我在我的项目中使用GoogleMaps Pod.我的故事板中有错误:

错误:IB Designables:无法呈现和更新MapViewController的自动布局状态:dlopen(GoogleMaps.framework,1):找不到合适的图像.找到了:GoogleMaps.framework:mach-o,但文件类型错误

我已将视图类设置为GMSMapView:

在此输入图像描述

应用程序正在模拟器上工作.我该如何解决这个错误?它导致整个故事板为空白.

uiview ios uistoryboard google-maps-sdk-ios

10
推荐指数
2
解决办法
1159
查看次数

Xcode 12.0 - XCFrameworks 无法在测试目标中工作

我的 Xcode 12.0 有问题。我正在尝试使用 Carthage 切换到 XCFrameworks --use-xcframeworks。Carthage 构建成功,我可以将胖库切换到 XCFrameworks 并使 App 目标构建并运行。问题在于测试。当我添加 Quick、RxTesting 或 RxBlocking 来测试它未构建的目标时,Xcode 看不到符号。我在 RxSwift git 上发现了一个问题:https://github.com/ReactiveX/RxSwift/issues/2292 也许有人让它工作并成功切换到 XCFrameworks。

xcode xctest swift rx-swift xcframework

5
推荐指数
0
解决办法
738
查看次数

SPM 插件 - 如何添加插件,这样它就不需要skipPackagePluginValidation 选项

现在,如果您想在包中使用 SPM 插件(例如 SwiftLint),则需要-skipPackagePluginValidation在从命令行构建时传递选项。在 Xcode 中有弹出窗口。对我来说这是严重的安全风险。

是否有任何选项可以添加插件并且它会通过验证?在插件端必须做什么,在客户端做什么?添加校验和可以解决验证问题吗?

我尝试过通过 xcodebuild 和 swift test 命令进行构建。

security xcode command-line-interface swift swift-package-manager

5
推荐指数
0
解决办法
712
查看次数

用平行线填充UIBezierPath

我正在尝试使用UIBezierPath绘制自定义形状:

UIBezierPath *aPath = [UIBezierPath bezierPath];

    [aPath moveToPoint:CGPointMake(100.0, 0.0)];

    // Draw the lines.
    [aPath addLineToPoint:CGPointMake(200.0, 40.0)];
    [aPath addLineToPoint:CGPointMake(160, 140)];
    [aPath addLineToPoint:CGPointMake(40.0, 140)];
    [aPath addLineToPoint:CGPointMake(0.0, 40.0)];
    [aPath closePath];
Run Code Online (Sandbox Code Playgroud)

我想用平行线填充它以使其剥离。我也想更改这些线条的颜色。假设我要使它们垂直。我必须定期计算此路径上的点数,我该怎么做?

我找到了这个UIColor colorWithPatternImage,但是后来我无法更改形状中线条的颜色和“密度”。

iphone cocoa-touch objective-c uikit ios

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

Xamarin表单ListView数据绑定嵌套对象

我有一个简单的页面与ListView

<ListView x:Name="ForecastView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding mainData.Temperature}" />
        </DataTemplate>
    </ListView.ItemTemplate>
 </ListView>
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过使用.来访问它来绑定嵌套属性.我的项目来源:

private ObservableCollection<ForecastData> forecast = new ObservableCollection<ForecastData>();
Run Code Online (Sandbox Code Playgroud)

我在构造函数中设置它:

ForecastView.ItemsSource = forecast;
Run Code Online (Sandbox Code Playgroud)

我的模型看起来像这样:

public class ForecastData
    {
        public MainData mainData;
.....
public class MainData
    {
        public double Temperature;
...
Run Code Online (Sandbox Code Playgroud)

在REST调用之后,我的列表由元素填充(我可以选择它们),但text属性为空.你能帮我弄清楚出了什么问题.我已经尝试了一切,没有任何帮助(我已经阅读了Stack Overflow上的所有类似问题).

c# listview xamarin.forms

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

Swift字典图-闭包初始化

我有Swift字典:

private var params = [String : AnyObject]()
Run Code Online (Sandbox Code Playgroud)

它包含查询项,例如:

  • "lat" = "40"
  • "lon" = "100"

我想将此字典映射到NSURLQueryItem数组。我想使其“笨拙”:

params.map{NSURLQueryItem.init}
Run Code Online (Sandbox Code Playgroud)

但是我得到一个错误。即使我将地图更改为[String:String?]。我知道我可以做一些像这样优雅的单线工作。谁能告诉我如何?

dictionary ios swift

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

容器视图控制器-开始/结束外观转换的不平衡调用

我正在尝试开发Apple文档中显示的Container View Controller。

现在,我在中有简单的初始化代码viewDidAppear

presentedVC = self.storyboard!.instantiateViewControllerWithIdentifier(Storyboard.yesNoControllerID)
self.addChildViewController(presentedVC)
presentedID = Storyboard.yesNoControllerID
presentedVC.view.frame = containerView.bounds
self.containerView.addSubview(presentedVC.view)
presentedVC.didMoveToParentViewController(self)
Run Code Online (Sandbox Code Playgroud)

我已经实现了交换方法,例如在Apple doc中:

private func exchangeVC(withVC viewController: UIViewController){
    presentedVC.willMoveToParentViewController(nil)
    self.addChildViewController(viewController)

    viewController.view.frame = newViewStartFrame
    let endFrame = oldViewEndFrame
    self.containerView.addSubview(viewController.view)

    self.transitionFromViewController(presentedVC, toViewController: viewController, duration: 0.25, options: UIViewAnimationOptions.CurveLinear, animations: {
        viewController.view.frame = self.presentedVC.view.frame
        self.presentedVC.view.frame = endFrame
        }) { (finished) in
            self.presentedVC.view.removeFromSuperview()
            self.presentedVC.removeFromParentViewController()
            viewController.didMoveToParentViewController(self)
            self.presentedVC = viewController
    }

}
Run Code Online (Sandbox Code Playgroud)

然后,我有一个简单调用的按钮:

let controller = self.storyboard!.instantiateViewControllerWithIdentifier(presentedID)
exchangeVC(withVC: controller)
Run Code Online (Sandbox Code Playgroud)

使用此代码,我的控制器可以在按下按钮时在屏幕上进行动画处理。但是在动画结束时,我得到了:

UIViewController的开始/结束外观转换的不平衡调用:0x7aecf730。

你能告诉我我做错了什么吗?如何摆脱这个错误/警告?

uiviewcontroller ios uicontainerview swift

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