This commit is contained in:
DDIsFriend
2023-08-18 17:28:57 +08:00
commit f0e8a1709d
4282 changed files with 192396 additions and 0 deletions

View File

@@ -0,0 +1,260 @@
//===--- AMapDemangleNodes.def - Demangling Tree Metaprogramming ----*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// This file defines macros useful for macro-metaprogramming with nodes in
// the demangling tree.
//
//===----------------------------------------------------------------------===//
/// NODE(ID)
/// The node's enumerator value is Node::Kind::ID.
/// CONTEXT_NODE(ID)
/// Nodes that can serve as contexts for other entities.
#ifndef CONTEXT_NODE
#define CONTEXT_NODE(ID) NODE(ID)
#endif
CONTEXT_NODE(Allocator)
CONTEXT_NODE(AnonymousContext)
NODE(AnyProtocolConformanceList)
NODE(ArgumentTuple)
NODE(AssociatedType)
NODE(AssociatedTypeRef)
NODE(AssociatedTypeMetadataAccessor)
NODE(DefaultAssociatedTypeMetadataAccessor)
NODE(AssociatedTypeWitnessTableAccessor)
NODE(BaseWitnessTableAccessor)
NODE(AutoClosureType)
NODE(BoundGenericClass)
NODE(BoundGenericEnum)
NODE(BoundGenericStructure)
NODE(BoundGenericProtocol)
NODE(BoundGenericOtherNominalType)
NODE(BoundGenericTypeAlias)
NODE(BoundGenericFunction)
NODE(BuiltinTypeName)
NODE(CFunctionPointer)
CONTEXT_NODE(Class)
NODE(ClassMetadataBaseOffset)
NODE(ConcreteProtocolConformance)
CONTEXT_NODE(Constructor)
NODE(CoroutineContinuationPrototype)
CONTEXT_NODE(Deallocator)
NODE(DeclContext)
CONTEXT_NODE(DefaultArgumentInitializer)
NODE(DependentAssociatedConformance)
NODE(DependentAssociatedTypeRef)
NODE(DependentGenericConformanceRequirement)
NODE(DependentGenericParamCount)
NODE(DependentGenericParamType)
NODE(DependentGenericSameTypeRequirement)
NODE(DependentGenericLayoutRequirement)
NODE(DependentGenericSignature)
NODE(DependentGenericType)
NODE(DependentMemberType)
NODE(DependentPseudogenericSignature)
NODE(DependentProtocolConformanceRoot)
NODE(DependentProtocolConformanceInherited)
NODE(DependentProtocolConformanceAssociated)
CONTEXT_NODE(Destructor)
CONTEXT_NODE(DidSet)
NODE(Directness)
NODE(DynamicAttribute)
NODE(DirectMethodReferenceAttribute)
NODE(DynamicSelf)
NODE(DynamicallyReplaceableFunctionImpl)
NODE(DynamicallyReplaceableFunctionKey)
NODE(DynamicallyReplaceableFunctionVar)
CONTEXT_NODE(Enum)
NODE(EnumCase)
NODE(ErrorType)
NODE(EscapingAutoClosureType)
NODE(NoEscapeFunctionType)
NODE(ExistentialMetatype)
CONTEXT_NODE(ExplicitClosure)
CONTEXT_NODE(Extension)
NODE(FieldOffset)
NODE(FullTypeMetadata)
CONTEXT_NODE(Function)
NODE(FunctionSignatureSpecialization)
NODE(FunctionSignatureSpecializationParam)
NODE(FunctionSignatureSpecializationParamKind)
NODE(FunctionSignatureSpecializationParamPayload)
NODE(FunctionType)
NODE(GenericPartialSpecialization)
NODE(GenericPartialSpecializationNotReAbstracted)
NODE(GenericProtocolWitnessTable)
NODE(GenericProtocolWitnessTableInstantiationFunction)
NODE(ResilientProtocolWitnessTable)
NODE(GenericSpecialization)
NODE(GenericSpecializationNotReAbstracted)
NODE(GenericSpecializationParam)
NODE(InlinedGenericFunction)
NODE(GenericTypeMetadataPattern)
CONTEXT_NODE(Getter)
NODE(Global)
CONTEXT_NODE(GlobalGetter)
NODE(Identifier)
NODE(Index)
CONTEXT_NODE(IVarInitializer)
CONTEXT_NODE(IVarDestroyer)
NODE(ImplEscaping)
NODE(ImplConvention)
NODE(ImplFunctionAttribute)
NODE(ImplFunctionType)
CONTEXT_NODE(ImplicitClosure)
NODE(ImplParameter)
NODE(ImplResult)
NODE(ImplErrorResult)
NODE(InOut)
NODE(InfixOperator)
CONTEXT_NODE(Initializer)
NODE(KeyPathGetterThunkHelper)
NODE(KeyPathSetterThunkHelper)
NODE(KeyPathEqualsThunkHelper)
NODE(KeyPathHashThunkHelper)
NODE(LazyProtocolWitnessTableAccessor)
NODE(LazyProtocolWitnessTableCacheVariable)
NODE(LocalDeclName)
CONTEXT_NODE(MaterializeForSet)
NODE(MergedFunction)
NODE(Metatype)
NODE(MetatypeRepresentation)
NODE(Metaclass)
NODE(MethodLookupFunction)
NODE(ObjCMetadataUpdateFunction)
CONTEXT_NODE(ModifyAccessor)
CONTEXT_NODE(Module)
CONTEXT_NODE(NativeOwningAddressor)
CONTEXT_NODE(NativeOwningMutableAddressor)
CONTEXT_NODE(NativePinningAddressor)
CONTEXT_NODE(NativePinningMutableAddressor)
NODE(NominalTypeDescriptor)
NODE(NonObjCAttribute)
NODE(Number)
NODE(ObjCAttribute)
NODE(ObjCBlock)
CONTEXT_NODE(OtherNominalType)
CONTEXT_NODE(OwningAddressor)
CONTEXT_NODE(OwningMutableAddressor)
NODE(PartialApplyForwarder)
NODE(PartialApplyObjCForwarder)
NODE(PostfixOperator)
NODE(PrefixOperator)
NODE(PrivateDeclName)
NODE(PropertyDescriptor)
CONTEXT_NODE(Protocol)
CONTEXT_NODE(ProtocolSymbolicReference)
NODE(ProtocolConformance)
NODE(ProtocolConformanceRefInTypeModule)
NODE(ProtocolConformanceRefInProtocolModule)
NODE(ProtocolConformanceRefInOtherModule)
NODE(ProtocolDescriptor)
NODE(ProtocolConformanceDescriptor)
NODE(ProtocolList)
NODE(ProtocolListWithClass)
NODE(ProtocolListWithAnyObject)
NODE(ProtocolSelfConformanceDescriptor)
NODE(ProtocolSelfConformanceWitness)
NODE(ProtocolSelfConformanceWitnessTable)
NODE(ProtocolWitness)
NODE(ProtocolWitnessTable)
NODE(ProtocolWitnessTableAccessor)
NODE(ProtocolWitnessTablePattern)
NODE(ReabstractionThunk)
NODE(ReabstractionThunkHelper)
CONTEXT_NODE(ReadAccessor)
NODE(RelatedEntityDeclName)
NODE(RetroactiveConformance)
NODE(ReturnType)
NODE(Shared)
NODE(Owned)
NODE(SILBoxType)
NODE(SILBoxTypeWithLayout)
NODE(SILBoxLayout)
NODE(SILBoxMutableField)
NODE(SILBoxImmutableField)
CONTEXT_NODE(Setter)
NODE(SpecializationPassID)
NODE(IsSerialized)
CONTEXT_NODE(Static)
CONTEXT_NODE(Structure)
CONTEXT_NODE(Subscript)
NODE(Suffix)
NODE(ThinFunctionType)
NODE(Tuple)
NODE(TupleElement)
NODE(TupleElementName)
NODE(Type)
CONTEXT_NODE(TypeSymbolicReference)
CONTEXT_NODE(TypeAlias)
NODE(TypeList)
NODE(TypeMangling)
NODE(TypeMetadata)
NODE(TypeMetadataAccessFunction)
NODE(TypeMetadataCompletionFunction)
NODE(TypeMetadataInstantiationCache)
NODE(TypeMetadataInstantiationFunction)
NODE(TypeMetadataSingletonInitializationCache)
NODE(TypeMetadataLazyCache)
NODE(UncurriedFunctionType)
#define REF_STORAGE(Name, ...) NODE(Name)
#include "AMapReferenceStorage.def"
CONTEXT_NODE(UnsafeAddressor)
CONTEXT_NODE(UnsafeMutableAddressor)
NODE(ValueWitness)
NODE(ValueWitnessTable)
CONTEXT_NODE(Variable)
NODE(VTableThunk)
NODE(VTableAttribute) // note: old mangling only
CONTEXT_NODE(WillSet)
NODE(ReflectionMetadataBuiltinDescriptor)
NODE(ReflectionMetadataFieldDescriptor)
NODE(ReflectionMetadataAssocTypeDescriptor)
NODE(ReflectionMetadataSuperclassDescriptor)
NODE(GenericTypeParamDecl)
NODE(CurryThunk)
NODE(DispatchThunk)
NODE(MethodDescriptor)
NODE(ProtocolRequirementsBaseDescriptor)
NODE(AssociatedConformanceDescriptor)
NODE(DefaultAssociatedConformanceAccessor)
NODE(BaseConformanceDescriptor)
NODE(AssociatedTypeDescriptor)
NODE(ThrowsAnnotation)
NODE(EmptyList)
NODE(FirstElementMarker)
NODE(VariadicMarker)
NODE(OutlinedBridgedMethod)
NODE(OutlinedCopy)
NODE(OutlinedConsume)
NODE(OutlinedRetain)
NODE(OutlinedRelease)
NODE(OutlinedInitializeWithTake)
NODE(OutlinedInitializeWithCopy)
NODE(OutlinedAssignWithTake)
NODE(OutlinedAssignWithCopy)
NODE(OutlinedDestroy)
NODE(OutlinedVariable)
NODE(AssocTypePath)
NODE(LabelList)
NODE(ModuleDescriptor)
NODE(ExtensionDescriptor)
NODE(AnonymousDescriptor)
NODE(AssociatedTypeGenericParamRef)
NODE(SugaredOptional)
NODE(SugaredArray)
NODE(SugaredDictionary)
NODE(SugaredParen)
#undef CONTEXT_NODE
#undef NODE

View File

@@ -0,0 +1,197 @@
//===--- AMapReferenceStorage.def - Non-default reference storage ---*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2018 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// This file defines non-default reference storage kind macros used for
// macro-metaprogramming.
//
//===----------------------------------------------------------------------===//
/// There are two fundamental reference storage types: checked and unchecked.
/// Checked storage types have runtime enforced correctness.
/// Unchecked storage types have no runtime enforced correctness.
///
/// Checked reference storage types are also subcategorized by loadability.
/// * Always loadable: The compiler may move the reference or use registers.
/// * Never loadable: The runtime (etc) tracks the address of the reference.
/// * Sometimes loadable: If the reference is a native object, then it is
/// always loadable. Otherwise fall back to never loadable semantics, a.k.a.
/// "address only".
///
/// Unchecked reference storage types are always loadable.
///
/// The primary macros therefore are:
/// * ALWAYS_LOADABLE_CHECKED_REF_STORAGE
/// * SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
/// * NEVER_LOADABLE_CHECKED_REF_STORAGE
/// * UNCHECKED_REF_STORAGE
///
/// Helper macros include:
/// * CHECKED_REF_STORAGE -- Any checked reference storage type. Specifically
/// "always", "sometimes", and "never" -- but not "unchecked".
/// * LOADABLE_REF_STORAGE -- Any loadable reference storage type. Specifically
/// "always", "sometimes", and "unchecked" -- but not "never".
/// * ALWAYS_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE -- self describing.
/// * NEVER_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE -- self describing.
///
/// SUBSYSTEMS NOTES
///
/// In general, reference storage types are barely visible in the user facing
/// type system and therefore AST clients above SIL can get away with
/// just REF_STORAGE, or CHECKED_REF_STORAGE with UNCHECKED_REF_STORAGE.
///
/// When it comes to SIL aware AST clients, loadability matters. The best way
/// to understand how the helper macros are used is to look at SILNodes.def.
/// What follows is a short -- possibly not up to date -- summary:
///
/// UNCHECKED_REF_STORAGE
/// Name##RetainValueInst
/// Name##ReleaseValueInst
/// LOADABLE_REF_STORAGE
/// Ref*ToNameInst
/// Name*ToRefInst
/// NEVER_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
/// Load##Name##Inst
/// Store##Name##Inst
/// ALWAYS_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
/// Copy##Name##ValueInst
/// StrongRetain##Name##Inst
/// Name##RetainInst
/// Name##ReleaseInst
///
/// After helper macro expansion:
///
/// UNCHECKED_REF_STORAGE
/// Ref*ToNameInst
/// Name*ToRefInst
/// Name##RetainValueInst
/// Name##ReleaseValueInst
/// ALWAYS_LOADABLE_CHECKED_REF_STORAGE
/// Ref*ToNameInst
/// Name*ToRefInst
/// Copy##Name##ValueInst
/// StrongRetain##Name##Inst
/// Name##RetainInst
/// Name##ReleaseInst
/// SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
/// Ref*ToNameInst
/// Name*ToRefInst
/// Load##Name##Inst
/// Store##Name##Inst
/// Copy##Name##ValueInst
/// StrongRetain##Name##Inst
/// Name##RetainInst
/// Name##ReleaseInst
/// NEVER_LOADABLE_CHECKED_REF_STORAGE
/// Load##Name##Inst
/// Store##Name##Inst
///
/// Finally, a note about IRGen: TypeInfos need to be created per reference
/// storage type, and SOMETIMES_LOADABLE_CHECKED_REF_STORAGE needs *two*
/// TypeInfos to be created. One for the loadable scenario, and one for the
/// address-only scenario.
#ifndef REF_STORAGE
#define REF_STORAGE(Name, name, NAME)
#endif
#ifdef ALWAYS_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
#if defined(ALWAYS_LOADABLE_CHECKED_REF_STORAGE) || \
defined(SOMETIMES_LOADABLE_CHECKED_REF_STORAGE)
#error Overlapping meta-programming macros
#endif
#define ALWAYS_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
ALWAYS_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME)
#define SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
ALWAYS_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME)
#endif
#ifdef NEVER_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
#if defined(NEVER_LOADABLE_CHECKED_REF_STORAGE) || \
defined(SOMETIMES_LOADABLE_CHECKED_REF_STORAGE)
#error Overlapping meta-programming macros
#endif
#define NEVER_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
NEVER_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME)
#define SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
NEVER_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME)
#endif
#ifdef LOADABLE_REF_STORAGE
#if defined(ALWAYS_LOADABLE_CHECKED_REF_STORAGE) || \
defined(SOMETIMES_LOADABLE_CHECKED_REF_STORAGE) || \
defined(UNCHECKED_REF_STORAGE)
#error Overlapping meta-programming macros
#endif
#define ALWAYS_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
LOADABLE_REF_STORAGE(Name, name, NAME)
#define SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
LOADABLE_REF_STORAGE(Name, name, NAME)
#define UNCHECKED_REF_STORAGE(Name, name, NAME) \
LOADABLE_REF_STORAGE(Name, name, NAME)
#endif
#ifdef CHECKED_REF_STORAGE
#if defined(SOMETIMES_LOADABLE_CHECKED_REF_STORAGE) || \
defined(ALWAYS_LOADABLE_CHECKED_REF_STORAGE) || \
defined(NEVER_LOADABLE_CHECKED_REF_STORAGE)
#error Overlapping meta-programming macros
#endif
#define ALWAYS_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
CHECKED_REF_STORAGE(Name, name, NAME)
#define SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
CHECKED_REF_STORAGE(Name, name, NAME)
#define NEVER_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
CHECKED_REF_STORAGE(Name, name, NAME)
#endif
#ifndef NEVER_LOADABLE_CHECKED_REF_STORAGE
#define NEVER_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
REF_STORAGE(Name, name, NAME)
#endif
#ifndef SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
#define SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
REF_STORAGE(Name, name, NAME)
#endif
#ifndef ALWAYS_LOADABLE_CHECKED_REF_STORAGE
#define ALWAYS_LOADABLE_CHECKED_REF_STORAGE(Name, name, NAME) \
REF_STORAGE(Name, name, NAME)
#endif
#ifndef UNCHECKED_REF_STORAGE
#define UNCHECKED_REF_STORAGE(Name, name, NAME) \
REF_STORAGE(Name, name, NAME)
#endif
#ifndef REF_STORAGE_RANGE
#define REF_STORAGE_RANGE(First, Last)
#endif
// NOTE: You will need to update ReferenceOwnership in ModuleFormat.h.
//NEVER_LOADABLE_CHECKED_REF_STORAGE(Weak, weak, WEAK)
//SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Unowned, unowned, UNOWNED)
//UNCHECKED_REF_STORAGE(Unmanaged, unmanaged, UNMANAGED)
REF_STORAGE_RANGE(Weak, Unmanaged)
#undef REF_STORAGE
#undef NEVER_LOADABLE_CHECKED_REF_STORAGE
#undef ALWAYS_LOADABLE_CHECKED_REF_STORAGE
#undef SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
#undef UNCHECKED_REF_STORAGE
#undef REF_STORAGE_RANGE
#undef ALWAYS_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
#undef NEVER_OR_SOMETIMES_LOADABLE_CHECKED_REF_STORAGE
#undef LOADABLE_REF_STORAGE
#undef CHECKED_REF_STORAGE

View File

@@ -0,0 +1,68 @@
//===--- AMapStandardTypesMangling - Mangling Metaprogramming ---*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
/// STANDARD_TYPE(KIND, MANGLING, TYPENAME)
/// The 1-character MANGLING for a known TYPENAME of KIND.
STANDARD_TYPE(Structure, A, AutoreleasingUnsafeMutablePointer)
STANDARD_TYPE(Structure, a, Array)
STANDARD_TYPE(Structure, b, Bool)
STANDARD_TYPE(Structure, c, UnicodeScalar)
STANDARD_TYPE(Structure, D, Dictionary)
STANDARD_TYPE(Structure, d, Double)
STANDARD_TYPE(Structure, f, Float)
STANDARD_TYPE(Structure, h, Set)
STANDARD_TYPE(Structure, I, DefaultIndices)
STANDARD_TYPE(Structure, i, Int)
STANDARD_TYPE(Structure, J, Character)
STANDARD_TYPE(Structure, N, ClosedRange)
STANDARD_TYPE(Structure, n, Range)
STANDARD_TYPE(Structure, O, ObjectIdentifier)
STANDARD_TYPE(Structure, P, UnsafePointer)
STANDARD_TYPE(Structure, p, UnsafeMutablePointer)
STANDARD_TYPE(Structure, R, UnsafeBufferPointer)
STANDARD_TYPE(Structure, r, UnsafeMutableBufferPointer)
STANDARD_TYPE(Structure, S, String)
STANDARD_TYPE(Structure, s, Substring)
STANDARD_TYPE(Structure, u, UInt)
STANDARD_TYPE(Structure, V, UnsafeRawPointer)
STANDARD_TYPE(Structure, v, UnsafeMutableRawPointer)
STANDARD_TYPE(Structure, W, UnsafeRawBufferPointer)
STANDARD_TYPE(Structure, w, UnsafeMutableRawBufferPointer)
STANDARD_TYPE(Enum, q, Optional)
STANDARD_TYPE(Protocol, B, BinaryFloatingPoint)
STANDARD_TYPE(Protocol, E, Encodable)
STANDARD_TYPE(Protocol, e, Decodable)
STANDARD_TYPE(Protocol, F, FloatingPoint)
STANDARD_TYPE(Protocol, G, RandomNumberGenerator)
STANDARD_TYPE(Protocol, H, Hashable)
STANDARD_TYPE(Protocol, j, Numeric)
STANDARD_TYPE(Protocol, K, BidirectionalCollection)
STANDARD_TYPE(Protocol, k, RandomAccessCollection)
STANDARD_TYPE(Protocol, L, Comparable)
STANDARD_TYPE(Protocol, l, Collection)
STANDARD_TYPE(Protocol, M, MutableCollection)
STANDARD_TYPE(Protocol, m, RangeReplaceableCollection)
STANDARD_TYPE(Protocol, Q, Equatable)
STANDARD_TYPE(Protocol, T, Sequence)
STANDARD_TYPE(Protocol, t, IteratorProtocol)
STANDARD_TYPE(Protocol, U, UnsignedInteger)
STANDARD_TYPE(Protocol, X, RangeExpression)
STANDARD_TYPE(Protocol, x, Strideable)
STANDARD_TYPE(Protocol, Y, RawRepresentable)
STANDARD_TYPE(Protocol, y, StringProtocol)
STANDARD_TYPE(Protocol, Z, SignedInteger)
STANDARD_TYPE(Protocol, z, BinaryInteger)
#undef STANDARD_TYPE

View File

@@ -0,0 +1,70 @@
//
// AMapFoundationConst.h
// AMapFoundationKit
//
// Created by JL on 2019/7/22.
// Copyright © 2019 Amap.com. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
typedef NSInteger AMapFoundationNSErrorCode;
//ErrorDomain:文件不存在 错误码:-555555
extern NSErrorDomain const AMapFoundationNSErrorFileDonotExist;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorFileDonotExistCode;
//ErrorDomain:文件路径不合法 错误码:-555556
extern NSErrorDomain const AMapFoundationNSErrorFilePathInvaild;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorFilePathInvaildCode;
//ErrorDomain:指定类型的日志文件不存在 错误码:-555557
extern NSErrorDomain const AMapFoundationNSErrorTypeLogDonotExist;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorTypeLogDonotExistCode;
//ErrorDomain:待上传的数据为空(可能是组装/压缩时出错) 错误码:-555558
extern NSErrorDomain const AMapFoundationNSErrorUploadDataIsEmpty;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorUploadDataIsEmptyCode;
//ErrorDomain:参数错误 错误码:-444444
extern NSErrorDomain const AMapFoundationNSErrorParametersInvalid;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorParametersInvalidCode;
extern NSErrorDomain const AMapFoundationNSErrorCloudConfigDisable;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorCloudConfigDisableCode;
extern NSErrorDomain const AMapFoundationNSErrorNetworkUnusable;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorNetworkUnusableCode;
extern NSErrorDomain const AMapFoundationNSErrorCurrentworkIsRunning;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorCurrentworkIsRunningCode;
extern NSErrorDomain const AMapFoundationNSErrorCurrentUploadSizeHaveExcess;
extern AMapFoundationNSErrorCode const AMapFoundationNSErrorCurrentUploadSizeHaveExcessCode;
extern NSErrorDomain const AMapFoundationErrorPrivacyShowUnknow;
extern AMapFoundationNSErrorCode const AMapFoundationErrorPrivacyShowUnknowCode;
extern NSErrorDomain const AMapFoundationErrorPrivacyShowNoShow;
extern AMapFoundationNSErrorCode const AMapFoundationErrorPrivacyShowNoShowCode;
extern NSErrorDomain const AMapFoundationErrorPrivacyInfoUnknow;
extern AMapFoundationNSErrorCode const AMapFoundationErrorPrivacyInfoUnknowCode;
extern NSErrorDomain const AMapFoundationErrorPrivacyInfoNotContain;
extern AMapFoundationNSErrorCode const AMapFoundationErrorPrivacyInfoNotContainCode;
extern NSErrorDomain const AMapFoundationErrorPrivacyAgreeUnknow;
extern AMapFoundationNSErrorCode const AMapFoundationErrorPrivacyAgreeUnknowCode;
extern NSErrorDomain const AMapFoundationErrorPrivacyAgreeNotAgreee;
extern AMapFoundationNSErrorCode const AMapFoundationErrorPrivacyAgreeNotAgreeeCode;
extern NSErrorDomain const AMapFoundationErrorInvaildUserKey;
extern AMapFoundationNSErrorCode const AMapFoundationErrorInvaildUserKeyCode;
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,16 @@
//
// AMapFoundationKit.h
// AMapFoundationKit
//
// Created by xiaoming han on 15/10/28.
// Copyright © 2015年 Amap. All rights reserved.
//
#import <AMapFoundationKit/AMapFoundationVersion.h>
#import <AMapFoundationKit/AMapServices.h>
#import <AMapFoundationKit/AMapURLSearchConfig.h>
#import <AMapFoundationKit/AMapURLSearchType.h>
#import <AMapFoundationKit/AMapURLSearch.h>
#import <AMapFoundationKit/AMapFoundationConst.h>
#import <AMapFoundationKit/AMapUtility.h>

View File

@@ -0,0 +1,19 @@
//
// AMapFoundationVersion.h
// AMapFoundation
//
// Created by xiaoming han on 15/10/26.
// Copyright © 2015年 Amap. All rights reserved.
//
#import <Foundation/Foundation.h>
#ifndef AMapFoundationVersion_h
#define AMapFoundationVersion_h
#define AMapFoundationVersionNumber 10802
FOUNDATION_EXTERN NSString * const AMapFoundationVersion;
FOUNDATION_EXTERN NSString * const AMapFoundationName;
#endif /* AMapFoundationVersion_h */

View File

@@ -0,0 +1,63 @@
//
// AMapSearchServices.h
// AMapSearchKit
//
// Created by xiaoming han on 15/6/18.
// Copyright (c) 2015年 xiaoming han. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 是否为海外用户...海外用户,SDK内部会屏蔽一些操作 默认为NO.
* @warning AMapServices初始化之前,设置才能生效
*/
extern BOOL _amapLocationOverseas;
// 显示隐私弹窗状态 -1: unknow , 0 : 未显示 1 已显示
typedef NS_ENUM(NSInteger, AMapPrivacyShowStatus)
{
AMapPrivacyShowStatusUnknow = -1,
AMapPrivacyShowStatusNotShow = 0,
AMapPrivacyShowStatusDidShow = 1,
};
// 集成SDK隐私信息状态 -1: unknow , 0 : 未集成 1 已集成
typedef NS_ENUM(NSInteger, AMapPrivacyInfoStatus)
{
AMapPrivacyInfoStatusUnknow = -1,
AMapPrivacyInfoStatusNotContain = 0,
AMapPrivacyInfoStatusDidContain = 1,
};
// 用户同意隐私状态 -1: unknow , 0 : 未同意 1 已同意
typedef NS_ENUM(NSInteger, AMapPrivacyAgreeStatus)
{
AMapPrivacyAgreeStatusUnknow = -1,
AMapPrivacyAgreeStatusNotAgree = 0,
AMapPrivacyAgreeStatusDidAgree = 1,
};
///高德SDK服务类
@interface AMapServices : NSObject
/**
* @brief 获取单例
*/
+ (AMapServices *)sharedServices;
///APIkey。设置key需要在高德官网控制台绑定对应的bundleid。
@property (nonatomic, copy) NSString *apiKey;
///是否开启HTTPS从1.3.3版本开始默认为YES。
@property (nonatomic, assign) BOOL enableHTTPS;
///是否启用崩溃日志上传。默认为YES, 只有在真机上设置有效。\n开启崩溃日志上传有助于我们更好的了解SDK的状况可以帮助我们持续优化和改进SDK。需要注意的是SDK内部是通过设置NSUncaughtExceptionHandler来捕获异常的如果您的APP中使用了其他收集崩溃日志的SDK或者自己有设置NSUncaughtExceptionHandler的话请保证 AMapServices 的初始化是在其他设置NSUncaughtExceptionHandler操作之后进行的我们的handler会再处理完异常后调用前一次设置的handler保证之前设置的handler会被执行。
@property (nonatomic, assign) BOOL crashReportEnabled __attribute__((deprecated("从v1.5.7开始废弃,调用无任何作用")));
///设备标识取自idfv。用于排查问题时提供。
@property (nonatomic, readonly) NSString *identifier;
@end

View File

@@ -0,0 +1,41 @@
//
// AMapURLSearch.h
// AMapFoundation
//
// Created by xiaoming han on 15/10/28.
// Copyright © 2015年 Amap. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "AMapURLSearchConfig.h"
///调起高德地图URL进行搜索若是调起失败可使用`+ (void)getLatestAMapApp;`方法获取最新版高德地图app.
@interface AMapURLSearch : NSObject
/**
* @brief 打开高德地图AppStore页面
*/
+ (void)getLatestAMapApp;
/**
* @brief 调起高德地图app驾车导航.
* @param config 配置参数.
* @return 是否成功.若为YES则成功调起若为NO则无法调起.
*/
+ (BOOL)openAMapNavigation:(AMapNaviConfig *)config;
/**
* @brief 调起高德地图app进行路径规划.
* @param config 配置参数.
* @return 是否成功.
*/
+ (BOOL)openAMapRouteSearch:(AMapRouteConfig *)config;
/**
* @brief 调起高德地图app进行POI搜索.
* @param config 配置参数.
* @return 是否成功.
*/
+ (BOOL)openAMapPOISearch:(AMapPOIConfig *)config;
@end

View File

@@ -0,0 +1,79 @@
//
// MAMapURLSearchConfig.h
// MAMapKitNew
//
// Created by xiaoming han on 15/5/25.
// Copyright (c) 2015年 xiaoming han. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import "AMapURLSearchType.h"
///导航配置信息
@interface AMapNaviConfig : NSObject
///应用返回的Scheme
@property (nonatomic, copy) NSString *appScheme;
///应用名称
@property (nonatomic, copy) NSString *appName;
///终点
@property (nonatomic, assign) CLLocationCoordinate2D destination;
///导航策略
@property (nonatomic, assign) AMapDrivingStrategy strategy;
@end
#pragma mark -
///路径搜索配置信息
@interface AMapRouteConfig : NSObject
///应用返回的Scheme
@property (nonatomic, copy) NSString *appScheme;
///应用名称
@property (nonatomic, copy) NSString *appName;
///起点坐标
@property (nonatomic, assign) CLLocationCoordinate2D startCoordinate;
///终点坐标
@property (nonatomic, assign) CLLocationCoordinate2D destinationCoordinate;
///驾车策略
@property (nonatomic, assign) AMapDrivingStrategy drivingStrategy;
///公交策略
@property (nonatomic, assign) AMapTransitStrategy transitStrategy;
///路径规划类型
@property (nonatomic, assign) AMapRouteSearchType routeType;
@end
#pragma mark -
///POI搜索配置信息
@interface AMapPOIConfig : NSObject
///应用返回的Scheme
@property (nonatomic, copy) NSString *appScheme;
///应用名称
@property (nonatomic, copy) NSString *appName;
///搜索关键字
@property (nonatomic, copy) NSString *keywords;
///左上角坐标
@property (nonatomic, assign) CLLocationCoordinate2D leftTopCoordinate;
///右下角坐标
@property (nonatomic, assign) CLLocationCoordinate2D rightBottomCoordinate;
@end

View File

@@ -0,0 +1,44 @@
//
// MAMapURLSearchType.h
// MAMapKitNew
//
// Created by xiaoming han on 15/5/25.
// Copyright (c) 2015年 xiaoming han. All rights reserved.
//
///驾车策略
typedef NS_ENUM(NSInteger, AMapDrivingStrategy)
{
AMapDrivingStrategyFastest = 0, ///<速度最快
AMapDrivingStrategyMinFare = 1, ///<避免收费
AMapDrivingStrategyShortest = 2, ///<距离最短
AMapDrivingStrategyNoHighways = 3, ///<不走高速
AMapDrivingStrategyAvoidCongestion = 4, ///<躲避拥堵
AMapDrivingStrategyAvoidHighwaysAndFare = 5, ///<不走高速且避免收费
AMapDrivingStrategyAvoidHighwaysAndCongestion = 6, ///<不走高速且躲避拥堵
AMapDrivingStrategyAvoidFareAndCongestion = 7, ///<躲避收费和拥堵
AMapDrivingStrategyAvoidHighwaysAndFareAndCongestion = 8 ///<不走高速躲避收费和拥堵
};
///公交策略
typedef NS_ENUM(NSInteger, AMapTransitStrategy)
{
AMapTransitStrategyFastest = 0,///<最快捷
AMapTransitStrategyMinFare = 1,///<最经济
AMapTransitStrategyMinTransfer = 2,///<最少换乘
AMapTransitStrategyMinWalk = 3,///<最少步行
AMapTransitStrategyMostComfortable = 4,///<最舒适
AMapTransitStrategyAvoidSubway = 5,///<不乘地铁
};
///路径规划类型
typedef NS_ENUM(NSInteger, AMapRouteSearchType)
{
AMapRouteSearchTypeDriving = 0, ///<驾车
AMapRouteSearchTypeTransit = 1, ///<公交
AMapRouteSearchTypeWalking = 2, ///<步行
};

View File

@@ -0,0 +1,50 @@
//
// AMapUtility.h
// AMapFoundation
//
// Created by xiaoming han on 15/10/27.
// Copyright © 2015年 Amap. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
//工具方法
/**
* @brief 如果字符串为nil则返回空字符串
*/
FOUNDATION_STATIC_INLINE NSString * AMapEmptyStringIfNil(NSString *s)
{
return s ? s : @"";
}
///坐标类型枚举
typedef NS_ENUM(NSInteger, AMapCoordinateType)
{
AMapCoordinateTypeAMap = -1, ///<AMap
AMapCoordinateTypeBaidu = 0, ///<Baidu
AMapCoordinateTypeMapBar, ///<MapBar
AMapCoordinateTypeMapABC, ///<MapABC
AMapCoordinateTypeSoSoMap, ///<SoSoMap
AMapCoordinateTypeAliYun, ///<AliYun
AMapCoordinateTypeGoogle, ///<Google
AMapCoordinateTypeGPS, ///<GPS
};
/**
* @brief 转换目标经纬度为高德坐标系,不在枚举范围内的经纬度将直接返回。
* @param coordinate 待转换的经纬度
* @param type 坐标系类型
* @return 高德坐标系经纬度
*/
FOUNDATION_EXTERN CLLocationCoordinate2D AMapCoordinateConvert(CLLocationCoordinate2D coordinate, AMapCoordinateType type);
/**
* @brief 判断目标经纬度处是否有高德数据。输入参数为高德坐标系。此方法为粗略判断,在边界地区可能会不准确。
* @param coordinate 待判断的目标经纬度
* @return 布尔值。YES:有数据NO:没数据
*/
FOUNDATION_EXTERN BOOL AMapDataAvailableForCoordinate(CLLocationCoordinate2D coordinate);

View File

@@ -0,0 +1,6 @@
framework module AMapFoundationKit {
umbrella header "AMapFoundationKit.h"
export *
module * { export * }
}

View File

@@ -0,0 +1 @@
1.8.2+foundation-no-idfa.f9a21ab