相关疑难解决方法(0)

Objective C类别的实例变量

我有一种情况,似乎我需要将实例变量添加到一个类别,但我从Apple的文档中知道我不能这样做.所以我想知道最好的选择或解决方法是什么.

我想要做的是添加一个为UIViewControllers添加功能的类别.我会发现它在我所有不同的UIViewControllers中都很有用,无论它们扩展了什么特定的UIViewController子类,所以我认为一个类别是最好的解决方案.为了实现这个功能,我需要几种不同的方法,我需要跟踪它们之间的数据,这就是我想要创建实例方法的原因.

如果它有用,这就是我特别想做的事情.我希望能够更容易地跟踪软件键盘何时隐藏和显示,以便我可以在视图中调整内容的大小.我发现可靠的唯一方法是将代码放在四个不同的UIViewController方法中,并跟踪实例变量中的额外数据.所以那些方法和实例变量是我想要放入一个类别的,所以每次我需要处理软件键盘时都不需要复制它们.(如果对于这个确切的问题有一个更简单的解决方案,那也没关系 - 但我仍然想知道类别实例变量的答案以供将来参考!)

oop cocoa objective-c categories

32
推荐指数
5
解决办法
3万
查看次数

objc_setAssociatedObject在iPhone模拟器中不可用

在3.1 SDk中,Apple增加了对相关对象的支持.

但是,模拟器不会编译包含对objc_setAssociatedObject,objc_getAssociatedObject等的引用的代码.(未声明的错误)

有没有解决的办法?我可以让iPhone模拟器编译这段代码吗?我不想在设备上进行所有测试.


更新

Bug Filed:rdar:// 7477326

iphone cocoa-touch objective-c ios-simulator

8
推荐指数
1
解决办法
4597
查看次数

实例变量的类别扩展

有没有办法以某种方式模拟一个类的类别行为关于它的实例变量,而不是方法?

我有一个ClassA,我希望在用新方法和其他cllass(ClassB)的ivars扩展它之后保留它的名字.当然,我可以继承ClassA,但结果类会有不同的名称.

对于方法添加,这不是问题 - 类别将是一个很好的解决方案.

UPDATE: ClassA用作XIB的文件所有者,这些要扩展的字段是IBOutlets.所以我在构建阶段需要它们.

iphone objective-c ios

5
推荐指数
2
解决办法
1102
查看次数

标签 统计

objective-c ×3

iphone ×2

categories ×1

cocoa ×1

cocoa-touch ×1

ios ×1

ios-simulator ×1

oop ×1