【问题标题】:ARC Semantic issue, no visible interface errorARC 语义问题,没有可见的界面错误
【发布时间】:2013-10-20 21:53:39
【问题描述】:

我的实现文件中有一个错误,我似乎无法修复该错误。我已经注释掉了错误。我该如何解决这个错误?

#import "FilmSearchService.h"


@implementation FilmSearchService
@synthesize searchTerm;
@synthesize delegate;

@synthesize results;
-(void)main {
    NSString *api_key = @"1234";
    NSString *search_term = [searchTerm stringByAddingPercentEscapeUsingEncoding:NSASCIIStringEncoding]; // no visible @ interface for 'NSString' declares the selector 'stringByAddingPercentEscapeUsingEncoding'
    NSString *url = [NSString stringWithFormat:@"http://api.rottentomatoes.com/api/public/v1.0/movies.json?apikey=%@&q=%@", api_key, search_term];

    NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]
                                              cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
    NSData *responseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:nil];

    if (responseData != nil) {
        NSError *error = nil;
        NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

        if (error) {
            [delegate serviceFinished:self withError:YES];
        } else {
            results = (NSArray *) [json valueForKey:@"movies"];
            [delegate serviceFinished:self withError:NO];
        }
    } else {
        [delegate serviceFinished:self withError:YES];
    }
}@end

电影搜索服务头文件:

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ServiceDelegate.h"

@interface FilmSearchService : NSOperation
{
    NSString *searchTerm;
    id<ServiceDelegate> delegate;
    NSArray *results;
}

@property (nonatomic, retain) NSString *searchTerm;
@property (nonatomic, retain) id<ServiceDelegate> delegate;

@property (nonatomic, retain) NSArray *results;


@end

如果这是一个相对简单的问题,我深表歉意,我对目标 c 很陌生,希望您能耐心等待。

谢谢。

【问题讨论】:

  • 没有可见界面做什么?您能否提供有关您所看到的确切错误的更多详细信息?

标签: iphone objective-c ios6


【解决方案1】:

字符串方法是stringByAddingPercentEscape*s*UsingEncoding而不是stringByAddingPercentEscapeUsingEncoding

【讨论】:

  • 我试过了,但似乎没有用。介意你能给我看一个字符串方法的书面例子吗?谢谢
  • @user1156596 该方法在您的代码中拼写错误。首先输入stringByAdding,然后从 Xcode 完成列表中选择正确的。
【解决方案2】:

@ExitToShell 是正确的。编译器显然对该字符串方法的拼写错误感到不满。这是“书面示例”:

NSString *search_term = [searchTerm stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

注意这不是stringByAddingPercentEscapeUsingEncoding,它不是字符串上的方法。

我认为您应该 (a) 将 ExitToShell 的答案标记为正确,并且 (b) 回到您提出的其他 SO 问题,并尝试将您的接受率提高到比目前大约 33% 更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多