解决Xcode报错Stored properties cannot be marked unavailable with ‘@available‘

当在旧的iOS项目中打开Xcode时遇到@available错误,解决方法是将unavailable改为*并指定最低版本(如iOS15.0),或在Podfile中设置最低支持版本为14.0以上。

出现场景

打开一个IOS老项目时,Xcode提示以下错误

@available(iOS, unavailable) //Stored properties cannot be marked unavailable with '@available'

在这里插入图片描述

解决方案

我们只需要把unavailable改成*号,同时增加版本号的限制。

//  @available(iOS, unavailable)
@available(iOS 15.0, *)

或者在Pod中将指定版本改为14.0以上。

`file cannot be mmap()ed, errno=22` 这个错误通常表示在尝试使用 `mmap()` 系统调用映射文件到内存时出现了问题,`errno=22` 对应的错误是 `EINVAL`,即无效参数。以下是一些可能的解决办法: ### 检查文件路径和权限 - **路径问题**:确保文件路径正确,没有拼写错误,并且文件确实存在于指定的位置。可以在代码中添加日志输出文件路径,或者在调试时打印出来进行确认。 ```objc NSString *filePath = @"your_file_path"; NSLog(@"File path: %@", filePath); BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:filePath]; if (!fileExists) { NSLog(@"File does not exist at the specified path."); } ``` - **权限问题**:确保应用程序有足够的权限访问该文件。在 iOS 中,应用程序沙盒机制会限制对文件的访问。如果是从外部存储访问文件,需要确保已经正确请求了相应的权限。 ### 检查文件大小 `mmap()` 可能会因为文件大小为零或过大而失败。如果文件大小为零,映射操作没有意义;如果文件过大,可能会超出系统的内存限制。可以在映射文件之前检查文件的大小: ```objc NSString *filePath = @"your_file_path"; NSFileManager *fileManager = [NSFileManager defaultManager]; NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:filePath error:nil]; if (fileAttributes) { NSNumber *fileSize = fileAttributes[NSFileSize]; if ([fileSize integerValue] == 0) { NSLog(@"File size is zero."); } } ``` ### 检查文件是否被其他进程占用 如果文件正在被其他进程打开并锁定,`mmap()` 可能会失败。可以尝试关闭其他可能正在使用该文件的应用程序或进程。 ### 检查系统资源 确保系统有足够的内存和文件描述符可供使用。如果系统资源不足,`mmap()` 可能会因为无法分配足够的内存而失败。可以通过监控系统资源使用情况来进行确认。 ### 重新启动 Xcode 和设备 有时候,简单地重新启动 Xcode 和设备可以解决一些临时的问题,例如缓存问题或资源泄漏。 ### 代码检查 检查代码中调用 `mmap()` 的部分,确保传递的参数正确。例如,检查偏移量是否是页面大小的倍数等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值