美文网首页
常见错误

常见错误

作者: foolish_hungry | 来源:发表于2018-06-13 12:29 被阅读0次

错误1

错误1

导致原因

layout.itemSize = CGSizeMake(self.view.width, self.view.height - topViewHeight);

解决办法

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
     return CGSizeMake(self.view.width, self.view.height - topViewHeight);
}

错误二: library not found for - 参考

解决方法:
获取 库文件所在的文件路径 ,添加到Target的Build Settings界面,如图:

image.png

错误三: Undefined symbols for architecture XXX: 参考

  • 如果我们使用64位模拟器(iPhone simulators 5s 或更高版本)编译或者运行项目,就会报以下错误:
    Undefined symbols for architecture x86_64:

  • 如果我们使用32位模拟器(iPhone simulators 5 或更低版本)编译或者运行项目,就会报以下错误:
    Undefined symbols for architecture i386:

原因之一:没有链接lib库而报错

解决方法:
但是我们怎么知道是没有链接libMobClickLibrary.a库而不是其他的什么库呢?这还要取决于这句"OBJC_CLASS$_MobClick", referenced from:。其中OBJC_CLASS$_MobClick中的MobClick就是我们引用的libMobClickLibrary.a中的一个文件。因为我真的是在AliyunSalesCustomerListTableViewManager.m中通过#import "MobClick.h"引用了MobClick.h,如下图:

image.png
有的时候,因为后面的类名跟第三方的库名没有任何相似处,比如库名叫做libAAA.a,而报错的类名却是BBB。此时,我们通过后面的类名根本不能准确的判断出这个BBB属于哪个库,也就不知道该链接哪个库。这种情况下,我们可以通过referenced from:提示后面的文件名来判断BBB到底属于哪个静态库,因为我们自己的某个类文件不太可能import很多第三方的库,这种情况下,采取这种方式比较好判断。
  • 总结:综上,我们可知:项目中如果用到了某个第三方静态库,但lib静态库或者framework静态库没有被链接时,就会遇到Undefined symbols for architecture XXX这一类的错误。
  • 原因:编译项目时,因为静态库没有链接进工程,所以静态库就不会参与编译,而项目某些文件(.m文件)又引用(或者说依赖)了静态库,所以自然会报错,而报的错就是经典的 Undefined symbols for architecture XXX这一类的错误。
  • 解决方案:下次遇到这类问题,我们只需要在Linked Frameworks and Libraries 中添加指定的静态库即可!
原因之二:没有链接.framework静态库而报错

解决方法同原因一

原因三: extern引用不存在的全局变量而报错

在appDelegate中定义的全局变量

image.png
在viewController.m 文件中使用
image.png
错误产生的原因: 变量名写错了
image.png

错误四

iOS 11 隐藏navigationBar 之后, 偏移statusBar的距离
解决办法

if (@available(iOS 11.0, *)) {
        self.iCollectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    } else {
        self.automaticallyAdjustsScrollViewInsets = NO;
    }

错误五

[Common] _BSMachError: port 7c13; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
_BSMachError: port 7c13; (os/kern) invalid name (0xf) "Unable to deallocate send right"

错误导致原因:
在UIAlertController 中 跳转系统设置界面时 产生该错误
解决方法:

// 方法一:
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
            NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
            if ([[UIApplication sharedApplication] canOpenURL:url]) {
                [[UIApplication sharedApplication] openURL:url];
            }
        }];

// 方法二:
 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
            if ([[UIApplication sharedApplication] canOpenURL:url]) {
                [[UIApplication sharedApplication] openURL:url];
            }
        });

错误六

在tableViewCell 上添加渐变的进度条时, 不出现 渐变层, 或者fram有问题

//  注意必需添加在 contentView上 
[self.contentView.layer addSublayer:self.iGradientLayer];
// 必须设置绝对布局 对gradientLayer
- (void)setDefaultLayout {
// 因为 contentView的frame 在没有布局完成之前是拿不到frame的, 所以 gradientLayer的frame 要借助于 其他子视图的布局去设置
    _iProgressView.frame = CGRectMake(kAspectWidth(81), kAspectHeight(kContentViewHeight) - kAspectHeight(28), kAspectWidth(kProgressViewWidth), kAspectHeight(kProgressViewHeight));
    _iGradientLayer.frame = _iProgressView.frame;
}

如果添加在contenView的子视图上, 不是frame 不对,就是 显示不出来

希望有更好方法的人,给我提供点建议

持续更新中...

相关文章

  • 常见错误

    1、spring默认只会扫描resources下的属性文件,而对于java包下的属性文件会被忽略。如果想要编译ja...

  • 常见错误

    错误1 导致原因 解决办法 错误二: library not found for - 参考 解决方法:获取 库...

  • 常见错误

    微信自定义菜单 EasyWechat :4.0最新版本 1.微信公众号配置网页授权域名微信报无法访问xxx.com...

  • 常见错误

    Test is not an annotation type描述:在使用junit进行单元测试时,在方法前声明@T...

  • 常见错误

    1、phpmyadmin 登录失败#1045无法登录MySQL服务器解决:(两种情况) 配置文件权限错误:修改ph...

  • 常见错误

    Permission Denial: opening provider 隐藏的android:exported属性...

  • 常见错误

    Xcode 7 创建新项目用到 UIWebView 发送请求时,报下面的错: “App Transport Sec...

  • 常见错误!

    命令行error(命令行中 xxx命令) solution(npm bin -g=>string expor...

  • 常见错误

    3、 搜索课程app端明明能搜索出东西,但是就是不能一搜索就搜索出来,要按一下选择大学级别才能搜出来 => ...

  • 常见错误

    @interface @end和@implementation @end不能嵌套包含 OC是弱语法,可以只有@im...

网友评论

      本文标题:常见错误

      本文链接:https://www.haomeiwen.com/subject/ysyqhftx.html