gpt4 book ai didi

cocoa-touch - ivars 允许在基于 Cocoa Touch 的匿名类别中使用,但不能在 "regular"Cocoa 中使用?

转载 作者:行者123 更新时间:2023-12-03 17:05:18 24 4
gpt4 key购买 nike

在 iOS 和常规 OS X 开发之间切换时,我注意到两件事:

//SomeClass.h
@interface SomeClass: SomeUIClass

@property (retain)SomeProperty* someProperty;

@end

//SomeClass.m
@interface SomeClass ()
{
SomePrivateVar* somePrivateVar;
}
@end

@implementation SomeClass

@synthesize someProperty;
@end

上面的代码在 iOS 下编译得很好。即:

  1. 我可以综合该属性,而无需显式声明 ivar在公共(public)@界面
  2. 我可以在.m文件中进一步声明其他私有(private)ivars匿名类别(类扩展)。

但是,如果针对 OS X 进行编译并子类化某些基于 NS 的类而不是基于 UI 的类(例如,NSView 而不是 UIView),则上述两种情况都会导致编译器错误。

我想我认为 Objective-C 2. 一般情况下允许上述操作,但它们只是 iOS 中的“快捷方式”?或者说它们在 iOS 中被允许但在 OS X 中却不允许,这是怎么回事?

最佳答案

这些是 "modern runtime" 的功能它只能用于 Mac OS X 上的 64 位应用程序。您可能正在构建一个还包含 32 位版本的通用二进制文件。

关于cocoa-touch - ivars 允许在基于 Cocoa Touch 的匿名类别中使用,但不能在 "regular"Cocoa 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com