我收到了这些奇怪的错误,但我不理解它们。错误如下:


  错误:变量-大小可能未初始化的对象(#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


谢谢!

最佳答案

Objective-C对象的实例必须是指针,这导致了您的问题。您的笑话初始化应为:

Joke *j = [[Joke alloc] init];


同样,将对象保留为自身作为循环引用也是一个坏主意。您将使用j->笑话->笑话->笑话->笑话->笑话进行无限递归...

关于iphone - 有人可以向我解释这些错误吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/850888/

10-09 16:34