我很难将自己介绍给Objective-C和iOS编程。我试图搜索这个问题,但结果不够简单。
所以我有viewController.h
和viewController.m
。在.h
我在@interface
和@end
之间添加我的标签/按钮等
@property ( nonatomic, strong ) UILabel *facebookLoginTextLabel;
@property ( nonatomic, strong ) UIButton *facebookLoginButton;
在.m
我只是在@implementation
和第一种方法之间合成它们
@synthesize facebookLoginTextLabel = _facebookLoginTextLabel;
@synthesize facebookLoginButton = _facebookLoginButton;
我现在面临的问题是如何处理其他价值观?举个例子。我有一个布尔值。我在哪里申报?我该如何设置?我如何获得价值?这对我来说太混乱了。 NSInteger的计数相同吗?
我希望,依赖于ifcase,将NSInteger
设置为0,1或2.我该如何实现?我试着像这样设置
.h
@property ( nonatomic ) CGFloat *width;
.m
@synthesize width = _width;
viewDidLoadMethod
_width = [self returnScreenWidth];
returnScreenWith method
- ( CGFloat ) returnScreenWidth {
return [UIScreen mainScreen].bounds.size.width;
}
这不起作用。为什么?我如何设置,如何获得?我如何声明变量?从PHP和Android开发人员的方式来说太混乱了。
答案 0 :(得分:2)
首先,它是CGFloat width
而不是CGFloat *width
,因为它是一个C结构,而不是在头文件中定义属性的Objective C类:
@property (nonatomic) CGFloat width;
只需使用self.width
,即可使用@property
访问self
,而不是访问得分不足的实例变量。
答案 1 :(得分:1)
请记住,所有基本/原始数据类型(int,float,char,BOOL)都不需要像你一样使用,总是使用 assign
是BOOL是一个原语,因为这是char的typedef。
应定义为:
@property (assign) <primitivetype> propertyName;
另外要注意,使用新的编译器(我希望你使用的是Xcode4.2,即LLVM),
@synthesize propertyName
由编译器自动完成
@synthesize propertyName = _propertyName;
atomic
和nonatomic
取决于您的要求,指向int
或float
的指针也是如此。