在C/Obj-C中,我们做了一个类似于此的typedef typedef int MYINT;
,这很清楚.
为块执行typedef - typedef void (^MyBlock) (int a);
现在,我们可以使用MyBlock
.
它不应该像 - typedef void (^MyBlock) (int a) MyBlock;
类似#define
吗?
语法如何工作?
在Obj-C中,属性可以配置为弱/强.实例变量.喜欢以下 -
@interface MyClass {
NSObject *a;
}
Run Code Online (Sandbox Code Playgroud)
MyClass的对象是保持弱引用a
还是强引用或其他什么?我认为iVar在其对象发布之前不会发布.为什么我们不为iVar属性指定弱/强?
我在Netbeans中创建了一个名为WebApplication1的简单Web应用程序.创建了一个名为的文件index.jsp
.当我运行应用程序时,浏览器会转到index.jsp
.项目中没有任何地方被称为欢迎页面,那么它是如何进行的?我检查了nbproject文件夹中的build.xml,glassfish-web.xml和所有xml,prop文件,但是没有提到index.jsp
.它是如何服用的?
如果我写 -
NSObject *a = [[NSObject alloc] init]; // or UIView or something
[a release];
NSLog(@"a = %@", a); // causes EXC_BAD_ACCESS, fine
Run Code Online (Sandbox Code Playgroud)
但是,如果我写 -
NSArray *a = [[NSArray alloc] init]; // or NSString or NSDictionary
[a release];
NSLog(@"a = %@", a); // no crash, prints empty array or string
Run Code Online (Sandbox Code Playgroud)
为什么第二种情况不会导致访问不良,因为它已经发布了?