2

i was making a xcode project with swift and it was working fine but suddenly it started giving me this error.

Could not build Objective C Module 'Foundation'

/Users/admin/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSNotification.h:17:4: Prefix attribute must be followed by an interface or protocol

Even when i create a new project and do nothing but just build it, this error is shown. The project is not built. When i click on the error message, it leads me to this file NSNotification.h

Here are the contents of this file

/*  NSNotification.h
Copyright (c) 1994-2016, Apple Inc. All rights reserved.
*/

#import <Foundation/NSObject.h>

typedef NSString *NSNotificationName NS_EXTENSIBLE_STRING_ENUM;

@class NSString, NSDictionary, NSOperationQueue;

NS_ASSUME_NONNULL_BEGIN

/****************   Notifications   ****************/

@interface NSNotification : NSObject <NSCopying, NSCoding>

id@property (nullable, readonly, retain) id object;
@property (nullable, readonly, copy) NSDictionary *userInfo;

- (instancetype)initWithName:(NSNotificationName)name object:(nullable    id)object userInfo:(nullable NSDictionary *)userInfo NS_AVAILABLE(10_6, 4_0) NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder     NS_DESIGNATED_INITIALIZER;

@end

@interface NSNotification (NSNotificationCreation)

+ (instancetype)notificationWithName:(NSNotificationName)aName object:      (nullable id)anObject;
+ (instancetype)notificationWithName:(NSNotificationName)aName object:        (nullable id)anObject userInfo:(nullable NSDictionary *)aUserInfo;

- (instancetype)init /*NSUIImagePNGRepresentation_UNAVAILABLE*/;    /* do     not invoke; not a valid initializer for this class */

@end

/****************   Notification Center ****************/

@interface NSNotificationCenter : NSObject {
@package
void *_impl;
void *_callback;
void *_pad[11];
}

#if FOUNDATION_SWIFT_SDK_EPOCH_AT_LEAST(8)
@property (class, readonly, strong) NSNotificationCenter *defaultCenter;

- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable      NSNotificationName)aName object:(nullable id)anObject;
#endif

- (void)postNotification:(NSNotification *)notification;
- (void)postNotificationName:(NSNotificationName)aName object:(nullable  id)anObject;
- (void)postNotificationName:(NSNotificationName)aName object:(nullable id)anObject userInfo:(nullable NSDictionary *)aUserInfo;

-     (void)removeObserver:(id)observer;
- (void)removeObserver:(id)observer name:(nullable NSNotificationName)aName object:(nullable id)anObject;

- (id <NSObject>)addObserverForName:(nullable NSNotificationName)name object:(nullable id)obj queue:(nullable NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *note))block NS_AVAILABLE(10_6, 4_0);
// The return value is retained by the system, and should be held onto by the caller in
// order to remove the observer with removeObserver: later, to stop observation.

@end

NS_ASSUME_NONNULL_END

Please help me through this. I will be very grateful for this. Thanks.

1 Answer 1

3

This line in NSNotification.h looks like it's been modified:

id@property (nullable, readonly, retain) id object;

Delete the id at the front of that line and try to recompile. That should fix it.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.