仅限iPad 2,iPhone4S和iPhone5上的EXC_BAD_ACCESS(代码= 1)

时间:2015-12-02 12:08:19

标签: ios xcode inheritance exc-bad-access circular-dependency

这一直困扰着我整个上午,我已经搜索了这个网站,我找不到任何关于这个问题的参考。

在我的项目中,我有两个圆形依赖项的对象,就像这样;

ClassA.h

@class ClassB;

@interface ClassA : NSObject {
    ClassB *foo;
}
@end

ClassA.m

#import "ClassB.h"

@implementation ClassA
    // Whatever goes here
@end

ClassB.h

@class ClassA;

@interface ClassB : NSObject {
    ClassA *foo;
}

@end

ClassB.m

#import "ClassA.h"

@implementation ClassB
    // Whatever goes here
@end

(CREDIT - Does Objective-C allow circular dependencies?

我自己在几个项目中使用过这种技术,到目前为止它完全正常工作,每个对象都能够完美地访问彼此的属性。

几天前我向ClassA添加了一些方法并尝试从ClassB调用它们,再次这完全正常.....所以我想,问题是我一直在测试各种操作系统版本的iPhone在他们身上,但他们都是iPhone5S及以上。今天我在iPad2模拟器上运行该项目,在运行 SOME OF 方法时崩溃,iPhone4S和iPhone5模拟器也是如此。

我在ClassA中使用的方法只是简单的setter;例如

-(void)setHomeButtonPageContents:(NSString*)contents Index:(int)index
{
    homeButtonPageContents[index]=contents;
}

它们都是上述的变体,有些设置颜色有些设置字体,但在较旧的设备(iPad2,iPhone4S和iPhone5)上,有些人不会工作。

任何想法?!?!

1 个答案:

答案 0 :(得分:0)

所有设备是否都运行相同版本的iOS?可能是在这些旧设备上你没有iOS版本可以处理你正在调用的方法。