Неизвестное имя типа 'NSString' в Xcode 11 - PullRequest
0 голосов
/ 14 октября 2019

Xcode показывает Unknown type name 'NSString' и другие ошибки при редактировании кодов.

Error messages

В моем проекте есть коды C и Obj-C,Хотя эти ошибки отображаются при редактировании, коды могут работать нормально в симуляторе или iPhone. И «благодаря» этой проблеме Xcode не может автоматически завершать код.

Что я пробовал:

  1. Выйти из Xcode и перезапустить мой Mac на время;
  2. Изменил все файлы .c в .m;
  3. Изменены все типы файлов .c в Objective-C source в разделе «Идентичность и тип».

Но ни один из них не работает для меня.

ОБНОВЛЕНИЕ 10/17: после обновления моего Mac до 10.15, проблемы исчезли и все идет нормально.

TLPlayerSubViewController.h

#import <UIKit/UIKit.h>

@class TLMovieObject;
@class TLOverlayView;

NS_ASSUME_NONNULL_BEGIN

extern NSString *const TLSubViewDismissNotification;

@interface TLPlayerSubViewController : UIViewController

@property (strong, nonatomic) TLOverlayView *playerView;
@property (strong, nonatomic) TLMovieObject *video;

- (void)playVideo;

@end

NS_ASSUME_NONNULL_END

TLPlayerSubViewController.m

#import "TLPlayerSubViewController.h"
#import "TLOverlayView.h"
#import "TLMovieObject.h"

NSString *const TLSubViewDismissNotification = @"";

@interface TLPlayerSubViewController () <TLOverlayViewDelegate>

@end

@implementation TLPlayerSubViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.view.backgroundColor = [UIColor greenColor];
    [self.view addSubview:self.playerView];


}

Я объясню свой вопрос более четко. Перед обновлением системы я уже включил / import <UIKit/UIKit.h> <Foundation/Foundation.h> в файл .h или .m. Странно, что я НИКОГДА не изменяю ЛЮБЫЕ коды, но обновляю систему до последней версии, а затем сообщение об ошибке исчезает.

Обратите внимание, что:

  1. Несмотря на сообщения об ошибках, проект может работать нормально. Я не думаю, что отсутствует .h файл, код по-прежнему может работать нормально.
  2. Я использую FFMpeg в моем проекте, и в нем есть какой-то файл .c. Я пытаюсь изменить этот файл .c в файл .m, но не работает. Я пишу коды Objective-C в файле .m (как показано на рисунке), а не в файле .c.

Интересно, это ошибка в Xcode 11 или в системе ...

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

У меня та же проблема.

macOS Catalina Developer Beta 11 Xcode 11

Хорошо работает для моих коллег, но не для меня. Попробовал переустановить xcode, очистить кеш и т. Д. Безуспешно.

0 голосов
/ 16 октября 2019

Прежде всего, если ваш код является Objective-C, а расширение его файла должно быть .m (в большинстве случаев) для NSString и с префиксом NS, проверьте файл исходного кода, есть ли в нем заголовки, такие как #import <Foundation/Foundation.h> и#import <UIKit/UIKit.h>, также проверьте, что в проекте есть эти библиотеки ссылок.

Основание для определения NSString и базового класса

UIKit для определений класса префикса пользовательского интерфейса. например, UIViewController (который имеет свойство view)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...