我不熟悉Objective C,正在阅读Peachpit出版社Steven Holzner的《视觉快速入门指南:Objective-C》

在第6章:面向对象编程中,有一节叫做使用类变量,他写道:

可以创建用于的类变量

并输入以下代码:

#import <stdio.h>
#import <Foundation/NSObject.h>
@interface TheClass: NSObject
static int count; //error: cannot declare variable inside @interface or @protocol
+(int) getCount;
@end
...

这段代码中的Xcode给了我一个错误:

无法在@interface或@protocol内声明变量

这本书错了还是我做错了什么?

推荐答案

在实现文件(.m文件)中声明静态变量.这应该是有效的:

// TheClass.h
@interface TheClass : NSObject
+ (int)count;
@end

// TheClass.m
static int theCount = 0;

@implementation TheClass
+ (int) count { return theCount; }
@end

它本身不是一个类变量;Objective-C没有类变量的概念.然而,再加上用于检索该变量的类方法,它的功能类似于类变量.然而,它实际上只是一个C静态变量,可以被类的实现访问.

Objective-c相关问答推荐

Objective c 判断文本字段是否为空

核心数据独特属性

如何声明仅调试语句

MKMapView zoom 到 viewDidLoad 上的用户位置?

iOS中CALayer的UIImage

isEqualTo: 和 isEqual 之间的区别:

声明变量id和NSObject *有什么区别?

Select 时如何更改 UITableViewCell 的 colored颜色 ?

未知类型名称类;您指的是 'Class' 吗?

如何编写 OS X Finder 插件

在字符串Objective-c中连接字符串

NSURLConnection sendAsynchronousRequest:queue:completionHandler:连续发出多个请求?

Modal segue,导航栏消失

在 UICollectionView 上重置滚动

command/usr/bin/codedesign 失败,退出代码 1-代码符号错误

如何在键盘上添加完成按钮?

字符串常量和字符串文字有什么区别?

如何判断 NSString 的最后一个字符

如何根据按钮按下重新加载/刷新 UIPickerView(带有新数据数组)?

如何在 iOS 中创建自定义 UIActivity?