这一直困扰着我整个上午,我已经搜索了这个网站,我找不到任何关于这个问题的参考。
在我的项目中,我有两个圆形依赖项的对象,就像这样;
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)上,有些人不会工作。
任何想法?!?!
答案 0 :(得分:0)
所有设备是否都运行相同版本的iOS?可能是在这些旧设备上你没有iOS版本可以处理你正在调用的方法。