小编aba*_*mut的帖子

SPM 依赖项的 Xcode 12 IPHONEOS_DEPLOYMENT_TARGET 警告

更新到 Xcode 12 后,我收到了很多关于 SPM 依赖项(包括 RxSwift 和 Facebook)的警告。

iOS Simulator 部署目标“IPHONEOS_DEPLOYMENT_TARGET”设置为 8.0,但支持的部署目标版本范围为 9.0 到 14.0.99。

我可以以某种方式抑制这些警告,还是等待适当框架的创建者修复它的唯一方法?

xcode swift-package-manager swift5 xcode12

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

UICollection视图reloadData原因重新创建可见单元格

当我调用UICollectionView的reloadData方法时,它会导致所有可见单元格闪烁.我发现这样做的原因是重新创建所有可见单元格,而UITableView 在重载数据后返回- tableView:cellForRowAtIndexPath:方法中的可见单元格.

那么,我怎样才能避免在UICollectionView中重新创建可见单元格.

uitableview reloaddata ios uicollectionview

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

将Swift String转换为Data时的EXC_BAD_ACCESS

在Release版本中调用此函数时应用程序崩溃(对于Debug,它运行完美)

func crashMe()
{
    func crashHelper(str: String) {}

    var crashString = "123"
    crashString.remove(at: crashString.startIndex)

    crashHelper(str: "\(crashString)")

    crashString.data(using: .ascii)
}
Run Code Online (Sandbox Code Playgroud)

几乎总是在真实设备上重现,并且通常在模拟器上(但不是100%)使用iOS 9或10

从此函数中删除任何行可防止崩溃

我做错了什么或者是一些Swift bug?

它可能会崩溃在不同的地方,崩溃日志之一:

swift_unknownRelease()中的0x02194b8a

_NSContiguousString .__中的0x020702c5 deallocating_deinit()

String.data中的0x024cea26(使用:String.Encoding,allowLossyConversion:Bool) - >数据?()

0x0007e04f在专门的AppDelegate.crashMe() - >()中

AppDelegate.crashMe()中的0x0007c31c - >()[inlined]()

ios swift3

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

使用NSInvocation时,arm64上的EXC_BAD_ACCESS崩溃

我已经开始准备一个旧项目来支持arm64架构.但是当我尝试在64位设备上执行此代码时,我在[invocation retainArguments]上遇到EXC_BAD_ACCESS崩溃; 线

- (void)makeObjectsPerformSelector: (SEL)selector withArguments: (void*)arg1, ...
{

    va_list argList;

    NSArray* currObjects = [NSArray arrayWithArray: self];
    for (id object in currObjects)
    {
        if ([object respondsToSelector: selector])
        {
            NSMethodSignature* signature = [[object class] instanceMethodSignatureForSelector: selector];

            NSInvocation* invocation = [NSInvocation invocationWithMethodSignature: signature];
            invocation.selector = selector;
            invocation.target = object;

            if (arg1 != nil)
            {
                va_start(argList, arg1);

                char* arg = arg1;

                for (int i = 2; i < signature.numberOfArguments; i++)
                {
                    const char* type = [signature getArgumentTypeAtIndex: i];
                    NSUInteger size, align;
                    NSGetSizeAndAlignment(type, …
Run Code Online (Sandbox Code Playgroud)

nsinvocation ios arm64

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