1

こんにちは、動的テーブル ビューを作成しており、他のファイルに保存されているメソッドから情報をアップロードしようとしています。情報を取得しているかどうかをテストしようとすると、Macho Linker エラーが発生します

アーキテクチャ i386 の未定義シンボル: "_OBJC_CLASS_$_FlickrFetcher"、参照元: MyTableViewController.old の objc-class-ref: アーキテクチャ i386 のシンボルが見つかりません

これが私が追加したコードで、問題が発生しました。

FlickerFetcher.h これには、私の tableViewController が topPlaces を呼び出すメソッドがあります

@interface FlickrFetcher : NSObject

+ (NSArray *)topPlaces;
+ (NSArray *)photosInPlace:(NSDictionary *)place maxResults:(int)maxResults;
+ (NSURL *)urlForPhoto:(NSDictionary *)photo format:(FlickrPhotoFormat)format;

@end

TableViewController ファイル。追加する前にコードが正常に機能していたため、怠惰にインスタンス化するとセッターブレインで問題が発生すると思います。マッチョ リンカー エラー。

#import "MyTableViewController.h"
#import "FlickrFetcher.h"

@interface MyTableViewController ()
@property (nonatomic, strong) FlickrFetcher* brain;
@end

@implementation MyTableViewController
@synthesize brain= _brain;

 //Error occured after I added this setter
-(FlickrFetcher*) brain
  {
  if (!_brain) _brain= [[FlickrFetcher alloc] init];
   return _brain;
}


- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
    // Custom initialization
    }
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];


//use a class method call since this is a class method
NSLog(@"Class = %@", [self.brain class]);
NSLog(@"Array = %@", [[self.brain class] topPlaces]);

}
4

2 に答える 2

6

私はエラーを発見しました.FlickrFetcherファイルがコンパイルされていないか、コンパイルリストにないことがわかりました.ナビゲーションメニューでプロジェクトをクリックし、ターゲットの下に移動してアプリケーションをクリックし、ビルドフェーズに入り、ファイルを追加することでこれを修正しました.コンパイルソースで。この問題を抱えている人に役立つことを願っています

于 2012-08-01T00:38:12.530 に答える