笔记——Xcode 编辑错误

本文记录了Xcode在真机和模拟器调试过程中遇到的各种错误,包括注册错误、模拟器启动失败、Unicode字符问题、方法名冲突、.xcodeproj文件解析失败、图片格式问题、类型赋值错误、视图响应问题、UIViewController的viewWillAppear不调用、异常崩溃、UserDefaults使用注意事项、强制类型转换以及switch case错误等,并提供了详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、真机调试:Couldn't register xx.xxx.app with the bootstrap server. Error: unknown error code.This generally means that another instance of this process was already running or is hung in the debugger.(gdb)

用模拟器的话就没问题,关键是编译能正常通过,只是一到真机调试就报错,由于在debug时,未停止debug而直接拔掉数据线导致的,可能是真机内任然保留有调试信息,真机认为自己依然处于调试状态,从而导致调试状态冲突而造成的。解决方案很简单,重启iPhone即可!


2、模拟器调试:An error was encountered while running (Domain = FBSOpenApplicationErrorDomain, Code = 4)

两种选择,一是 退出模拟器 重新运行。二是 打开模拟器 点击   Reset Content and Settings。


3、SubCardManagementVC.m:104:83: Treating Unicode character as whitespace
可能是由于粘贴网页上的代码的时候两行之间的回车引起的,两行之间重新输入回车就行


4、Multiple methods named 'handleResponseData:' found with mismatched result, parameter type or attributes

这是由于两个方法具有相同的方法名,编译器可能在某些情况下无法分辨。比如:
- (void)handleResponseData:(NSString *) data;
- (void)handleResponseData:(NSData *) data;
调用方式:
[instance performSelector:@selector(handleResponseData:) withObject:object];
这时候就会报错。


5、svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened because the project file cannot be parsed.

因为更新SVN后,与他人的.xcodeproj工程文件冲突了,然后还是会强制更新,内部文件出现了冲突,所以解析不了文件。然后会出现这样的冲突消息。(以后上传SVN注意有些文件不能上传。)

<<<<<<< .mine  
    9ADAAC6A15DCEF6A0019ACA8 .... in Resources */,  
=======  
    52FD7F3D15DCEAEF009E9322 ... in Resources */,  
>>>>>>> .r269 

解决方法:1.对.xcodeproj 文件右键,显示包内容

   2.双击打开 project.pbxproj 文件

   3.找到以上类似的冲突信息(可以用commad + f 搜索)

   4.删除 <<<<<<<,======,>>>>>>这些行

   5.保存,退出

   6.重新打开.xcodeproj文件即可

==============================================2月更新

6、copypngfile error

今天真机调试的时候出现了35个这样的错误,但是显示Build Succeed,虽说是成功了,但是看着这么多错误心里还是很闹心,去查过资料,人家说是图片不存在,重新导入,但是我的Build Phases中的文件都没问题。

后来发现是图片的问题,我当时准备的图片是jpg格式的,直接更改后缀名成.png,以为这样可以省事没问题,结果却出现这样的错误。

最终解决办法:

将所有出现这样错误的图片全部重新导出为.png

步骤:选中所有出问题的图片,双击打开,对每张图片操作:文件-导出-格式选择png-选择存储-替换即可。


7、 xib 控件变暗。
这个应该是因为你用了 ios8 的那个特性,然后复制了xib,你可以更改下size的尺寸,或者在xib中把ios8那个特性给勾上


8、Incompatible pointer types assigning to 'NSMutableArray *' from 'NSArray *'

这个错误真的很常见,就是说 你把 NSMutableArray 和 NSArray搞错了,有可能是你定义了不可变的一个数组  然后又调用了可变的方法,假如你说 没啊,那请你好好打个断点看看 应该是有的

9、Collection expression type 'UIView *' may not respond to 'countByEnumeratingWithState:objects:count:'

这个错误 当初我是在当前控制器添加子控制器 添加视图的时候出现的,目的是类似模态视图吧。

我想这个错误的原因是 你只添加了UIView 并没加上控制器,导致点击VIEW的时候 报错,因为控制器还没加呢。

如添加时 

        ModifyBirthdayVC *t_vc = [[ModifyBirthdayVC  alloc] initWithNibName:@"ModifyBirthdayVC" bundle:nil];
        t_vc.view.backgroundColor = [UIColor clearColor];
        UIView * mask = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, ScreenHeight - 160 - 64 - 44)];
        mask.backgroundColor = [UIColor blackColor];
        mask.tag = 10;
        mask.alpha = 0.5;
        
        [t_vc.view  addSubview:mask];
        [self addChildViewController:t_vc];
        [self.view  addSubview:t_vc.view];
删除时

    for (UIView *mask in self.view.subviews) {
        if (mask.tag == 10) {
            [mask removeFromSuperview];
            return;
        }
    }

10、viewWillAppear不调用。

viewWillAppear不调用应该有很多情况 说说我的吧

在调试的过程中,我想让ViewController 作为根视图出现 没有UINavigationController的效果,有还是没有。。忘记了,总之注释掉这句 就调用了

    ViewController *t_vc = [[ViewController alloc] init];
//    UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:t_vc];
    self.window.rootViewController = t_vc;
    [self.window makeKeyAndVisible];

11、*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]'

很明显。。就是第3项为空了,第3项不能为空,一般我出现这种情况是打包json数据 用dict的时候,然后字典中有为nil的元素。所以。。

12、boolforkey

靠,这个是用 UserDefaults 的时候要注意的。当你取的是bool值要用 - (BOOL)boolForKey:(NSString *)defaultName; 而一般的字符串则是  

- (NSString *)stringForKey:(NSString *)defaultName。


13、Initializing 'EMAppDelegate *__strong' with an expression of incompatible…

使用ARC时,获取全局的AppDelegate会有上面的警告。

修改前:

AppDelegate *app = [UIApplication sharedApplication].delegate;

修改后:即(强制转换)

AppDelegate *app = (AppDelegate*)[UIApplication sharedApplication].delegate;

// 等号左值是Engine类型,右值是Slant6类型

// 如果Slant6确实继承Engine,那你给右边加个强制转换应该就可以了


14、swith case is in protected scope错误提示解决方法

在使用Swith时: 系统并没有使得case自带{},当case中的语句不止一行时,会报swith case is in protected scope 的错误,这里只需要在case段中添加{} 。


15、*** Assertion failure in void _UIPerformResizeOfTextViewForTextContainer(NSLayoutManager *, UIView<NSTextContainerView> *, NSTextContainer *, NSUInteger)(), /SourceCache/UIFoundation_Sim/UIFoundation-264.8/UIFoundation/TextSystem/


出现这个问题的时候  我是用的block,然后Block回调的时候更新了UI,却没有在主线程程中做。 不在主线程 更新 UI

16、An error was encountered while running (Domain = FBSOpenApplicationErrorDomain, Code = 4)

重置模拟器。

点击模拟器菜单中的Reset Contents and Settings


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值