2 iphone cocoa-touch objective-c
我得到这些奇怪的错误,但我不理解它们.以下是错误:
错误:可能无法初始化变量大小的对象(#1)
错误:静态分配的Objective-C类实例'笑话'(#1)
错误:静态分配的Objective-C类实例'笑话'(#1)
错误:无法转换为指针类型(#2)
(注意:错误后面的数字将指示错误在我的实现文件中的位置)
这是我的.m文件:
#import "Joke.h"
@implementation Joke
@synthesize joke;
@synthesize rating;
- (id)init {
[super init];
return self;
}
- (void)dealloc {
[joke release];
[super dealloc];    
}
+ (id)jokeWithValue:(NSString *)joke {
Joke j = [[Joke alloc] init]; // (# 1) This is where #1 errors occurred
j.joke = joke;
return [j autorelease]; // (# 2) This is where #2 errors occurred
 }
@synthesize joke;
@synthesize rating;
@end
谢谢!
Jas*_*oco 10
Objective-C对象的实例必须是指针,这会导致您的问题.你的笑话初始化应该是:
Joke *j = [[Joke alloc] init];
此外,对象保持自身作为循环引用是一个坏主意.你可以通过j-> joke-> joke-> joke-> joke-> joke来进行无限递归...
在变量之前需要一个"*" - 例如,"Joke*j = [[Joke alloc] init];"
你也只想在那里使用@synthesize  - 而不是每个属性.像这样:
@synthesize joke, rating;
| 归档时间: | 
 | 
| 查看次数: | 5578 次 | 
| 最近记录: |