更新到 Xcode 12 后,我收到了很多关于 SPM 依赖项(包括 RxSwift 和 Facebook)的警告。
iOS Simulator 部署目标“IPHONEOS_DEPLOYMENT_TARGET”设置为 8.0,但支持的部署目标版本范围为 9.0 到 14.0.99。
我可以以某种方式抑制这些警告,还是等待适当框架的创建者修复它的唯一方法?
当我调用UICollectionView的reloadData方法时,它会导致所有可见单元格闪烁.我发现这样做的原因是重新创建所有可见单元格,而UITableView 在重载数据后返回- tableView:cellForRowAtIndexPath:方法中的可见单元格.
那么,我怎样才能避免在UICollectionView中重新创建可见单元格.
在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]()
我已经开始准备一个旧项目来支持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) ios ×3
arm64 ×1
nsinvocation ×1
reloaddata ×1
swift3 ×1
swift5 ×1
uitableview ×1
xcode ×1
xcode12 ×1