小编And*_*ver的帖子

反应本机/iOS SDK。将 iOS SDK 更新到 14.5 后,没有匹配的函数调用“RCTBridgeModuleNameForClass”

我已将 iOS SDK 平台更新到版本14.5。Xcode 版本现在是12.5。更新后,我无法在我的设备上启动应用程序。并且编译器抛出一个错误:

调用“RCTBridgeModuleNameForClass”没有匹配的函数

我尝试重新安装豆荚,但没有帮助。如何解决?谢谢

在此处输入图片说明

sdk ios react-native xcode12.5 ios14.5

19
推荐指数
5
解决办法
9294
查看次数

从UIWebView创建PDF文件

 -(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
    // Creates a mutable data object for updating with binary data, like a byte array
  UIWebView *webView = (UIWebView*)aView;
    NSString *heightStr = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"];

    int height = [heightStr intValue];

    // Get the number of pages needed to print. 9 * 72 = 648
    int pages = ceil(height / 648.0);

    NSMutableData *pdfData = [NSMutableData data];
    UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );
  CGRect frame = [webView frame];
    for (int i = 0; i < pages; i++) {
      // Check to …
Run Code Online (Sandbox Code Playgroud)

pdf core-graphics crop uiwebview ios

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

不理解“成员 '&lt;func&gt;' 不能用于类型 'any &lt;type&gt;' 的值;请考虑使用通用约束”错误

我无法完全掌握协议和泛型的问题。

在下面的代码中,用 ERROR HERE 注释标记,我收到以下错误:

成员“protocolMethod”不能用于“any Protocol1”类型的值;考虑使用通用约束来代替

我认为它抱怨主要是因为参数的类型item至少在某种程度上未解决?不幸的是,我发现这个建议没有帮助,因为我不知道通用约束在这里有何帮助(至少就我对它们的理解而言)。

老实说,我觉得我可能对 Swift 要求太多了。

有人可能会看到问题是什么或有尝试解决此问题的建议吗?

添加于 12/26/22 - 作为进一步的背景,导致错误出现的原因是将参数添加itemprotocolMethod协议上的方法中,这几乎表明它是问题的核心。

protocol Protocol1
{
    associatedtype DataItem
    func protocolMethod(item : DataItem)
}

protocol Protocol2 {
    associatedtype AType1: Hashable
    //...
}

class Class1<Type1: Protocol2>: NSObject
{
    
    typealias Item = Type1.AType1
    
    var delegate : (any Protocol1)?
     
    private func method1(item: Item)
    {
        delegate?.protocolMethod(item : item)  //ERROR HERE
    }
}

Run Code Online (Sandbox Code Playgroud)

(使用最新的Xcode)

generics swift swift-protocols

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

当用户尝试在 IOS 14、swift 5 中使用具有选定照片权限的 PHPickerViewController 检索视频时,获取视频数据为零

在 iOS 14 中,Apple 引入了PHPickerViewController 用户有权访问所有照片库视频或选定视频的权限。在第一种情况下,当我们向所有视频提供权限时,我们能够从照片库中获取视频并将其转换为视频数据以将其发送到后端服务器。

但在第二种情况下,当用户向选定的视频提供权限时,在这种情况下,我们可以从照片库中获取视频,但无法将其转换为本地视频 url 中的数据。此时数据始终为零。

我们使用下面的代码从照片库 url 检索视频并将其转换为数据。

// MARK: PHPickerViewControllerDelegate Methods
extension PhotoPickerVC: PHPickerViewControllerDelegate {
    
    func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
        // Always dismiss the picker first
        dismiss(animated: true)
        if !results.isEmpty {
            guard let itemProvider = results.first?.itemProvider else { return }
            
            itemProvider.loadItem(forTypeIdentifier: "public.movie", options: nil) { [weak self] (fileURL, _) in
                DispatchQueue.main.async {
                    guard let videoURL = fileURL as? URL, let _ = self else { return }
                    do {
                        //mediaURL video …
Run Code Online (Sandbox Code Playgroud)

ios swift ios14 phpickerviewcontroller

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

在 XCode 中生成像 Visual Studio 一样不存在的方法

在 Visual Studio 中,我们可以编写方法名称,然后通过单击Crtl+ +Visual Studio 将自动生成带有适当参数(如果有)的方法。

举例来说,您在 xcode 中有以下过于简化的 Swift 代码:

struct Travel {
    var expectedTime: Double
}
Run Code Online (Sandbox Code Playgroud)

您为其创建实例

var itenaryLondonToParis = Travel(expectedTime: 2.27)
Run Code Online (Sandbox Code Playgroud)

然后输入一个不存在的方法调用:

itenaryLondonToParis.getTime()
Run Code Online (Sandbox Code Playgroud)

此时,如果用户使用某些键盘命令或类似命令请求,xcode 会建议getTime()在内部创建方法的可能性Travel

func getTime(){
    //generated placeholder method
}
Run Code Online (Sandbox Code Playgroud)

用户稍后可以将其编辑为更有用的内容。

Xcode中有类似的东西吗?

xcode swift

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

Swift 扩展和单元测试

我有一些 UT 的问题,我正在尝试快速编写

我有一个带有“做事”扩展名的协议:

protocol MyProtocol: class
{
    var myVar: SomeClass { get }

    func doStuff(identifier: String) -> Bool
}

extension MyProtocol
{
    func doStuff(identifier: String) -> Bool {
        return true
    }
}
Run Code Online (Sandbox Code Playgroud)

然后是一个实现我的协议的类

final class MyClass: MyProtocol {

}
Run Code Online (Sandbox Code Playgroud)

这个类有一个扩展,它实现了另一个协议,它有一个我应该测试的方法

public protocol MyOtherProtocol: class {
    func methodToTest() -> Bool
}

extension MyClass: MyOtherProtocol {
    public func methodToTest() {
        if doStuff() {
            return doSomething()
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

这个设置有没有办法模拟 doStuff 方法?

unit-testing swift swift-protocols

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

我如何检查 CNContact 自上次我的 iOS 应用程序将其保存在联系人存储区以来是否已更改?

我想将数据存储在属于 的一部分的联系人存储中CNContact。是否有一个属性NSObject或我可以存储数据结构或对象CNContact的内容?NSDate我希望能够跟上CNContact上次修改 a 的时间。

我还没有找到苹果公司给我们提供的任何具体方法来做到这一点。我不想将修改日期保存在UserDefaultsCloudKit 或 Core Data 或任何其他持久数据方式中。我不想使用 的 Note 属性CNContact,因为用户可以更改它。的dates实例属性CNContact仅是 get ,我还没有找到任何使用该属性来做我想做的事情的方法。

另一种方法是比较哈希值或使用or运算符isEqual的方法。那行得通吗?CNContact=====

contacts ios swift cncontact cncontactstore

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

在 Swift 中将小数时间转换为小时和分钟

我是编程新手,这是我的第一个程序和问题。我正在尝试编写一个函数,它将简单地将小数时间转换为小时和分钟。我删除小时并将小数分钟乘以 60,然后将两者作为字符串加在一起。我需要在我的程序中使用这个设施几次,因此这个功能。使用这个函数的计算很简单,但我得到了奇怪的结果。如果我将“plannedStartFuel”保持为 450 并调整“minLandAllowance”,我会得到以下结果,

185 returns 1:28
182 returns 1:29
181 returns 1:30
180 returns 2:30
179 returns 2:30
175 returns 2:32
Run Code Online (Sandbox Code Playgroud)

正确答案是 1:00 数字。我不明白为什么程序似乎在180点的结果上增加了一个小时。我确信有比我使用过的更好的方法来完成此计算,但如果您能提供帮助,我将不胜感激地知道哪个部分导致了错误以及原因。我尝试过什么?...一切!如果你向一个 7 岁的孩子提出你的答案,我可能有机会理解。谢谢。

import UIKit
import Foundation

func decimalHoursConv (hours : Double) -> (_hrs:String, mins:String) {

    let remainder = hours.truncatingRemainder(dividingBy: 1) * 60
    let mins = (String(format: "%.0f", remainder))

    let hrs = (String(format: "%.0f", hours))

    return (hrs, mins)
}
var plannedStartFuel = Double (0)
var minLandAllowance = Double (0)
var flyingTimeToMLA = Double(0)

plannedStartFuel = 450 …
Run Code Online (Sandbox Code Playgroud)

function swift calculation

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

kotlin 数据类构造函数内的 if 条件

我有一个data class,我正在创建一个object。我传递这样的参数值:

val leadDetails = AddLeadDetails(AgentId = agent.UserId,
    Name = leadUserName.text.toString().trim(),
    MobileNo = leadMobileNumber.text.toString().trim(),
    ProductType = productTypeId,
    LoanType = productTypeItem,
    ApplicationStatus = //if condition to put value i.e if(string == "s") "One value" else "Second Value"
    Amount = productAmountText.text.toString().trim(),
    Pincode = pinCodeText.text.toString().trim(),
    Remarks = customerRemarks.text.toString().trim(),
    Type = referType!!)
Run Code Online (Sandbox Code Playgroud)

ApplicationStatus我想根据条件添加一个值if。我怎样才能做到这一点?

kotlin

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

美丽搜索版本【错误:您的数据库版本(1.0.2)与您当前的引擎版本(1.1.0)不兼容。】

当我启动运行 docker 时,meilisearch 容器未运行并出现此错误:

2023-04-10 17:23:44 错误:您的数据库版本 (1.0.2) 与当前引擎版本 (1.1.0) 不兼容。2023-04-10 17:23:44 要在Meilisearch版本之间迁移数据,请按照我们的指南https://docs.meilisearch.com/learn/update_and_migration/updating.html

当我昨天运行我的项目时,一切都很好,但今天我无法开始运行 meilisearch。

laravel docker meilisearch laravel-10

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