From 084f446123cfb2872e08f292d83ac7c302ec1925 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Sun, 30 May 2021 19:50:34 +0800 Subject: [PATCH 01/32] Add MASLayoutGuide for UI/NSLayoutGuide support --- Masonry.xcodeproj/project.pbxproj | 171 ++---------------- .../xcschemes/Masonry OSX.xcscheme | 82 --------- ...{Masonry iOS.xcscheme => Masonry.xcscheme} | 21 +-- Masonry/LayoutGuide+MASAdditions.h | 63 +++++++ Masonry/LayoutGuide+MASAdditions.m | 80 ++++++++ Masonry/MASConstraintMaker.h | 19 +- Masonry/MASConstraintMaker.m | 12 +- Masonry/MASUtilities.h | 2 + Masonry/MASViewAttribute.m | 2 +- Masonry/MASViewConstraint.m | 15 ++ Masonry/Masonry.h | 1 + Masonry/NSArray+MASAdditions.m | 6 +- Masonry/View+MASAdditions.m | 6 +- 13 files changed, 218 insertions(+), 262 deletions(-) delete mode 100644 Masonry.xcodeproj/xcshareddata/xcschemes/Masonry OSX.xcscheme rename Masonry.xcodeproj/xcshareddata/xcschemes/{Masonry iOS.xcscheme => Masonry.xcscheme} (78%) create mode 100644 Masonry/LayoutGuide+MASAdditions.h create mode 100644 Masonry/LayoutGuide+MASAdditions.m diff --git a/Masonry.xcodeproj/project.pbxproj b/Masonry.xcodeproj/project.pbxproj index 1d7d2dab..a0e07880 100644 --- a/Masonry.xcodeproj/project.pbxproj +++ b/Masonry.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 15E414912663780600D3D1B6 /* LayoutGuide+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 15E414922663780600D3D1B6 /* LayoutGuide+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */; }; 3AED05BD1AD59FD40053CC65 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05BC1AD59FD40053CC65 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3AED05F21AD5A0470053CC65 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05DC1AD5A0470053CC65 /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3AED05F31AD5A0470053CC65 /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05DD1AD5A0470053CC65 /* MASCompositeConstraint.m */; }; @@ -30,36 +32,13 @@ 3AED06051AD5A0470053CC65 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05EF1AD5A0470053CC65 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3AED06061AD5A0470053CC65 /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05F01AD5A0470053CC65 /* View+MASAdditions.m */; }; 3AED06071AD5A0470053CC65 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05F11AD5A0470053CC65 /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED060A1AD5A1400053CC65 /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05EB1AD5A0470053CC65 /* NSArray+MASAdditions.m */; }; - 3AED060B1AD5A1400053CC65 /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05E71AD5A0470053CC65 /* MASViewAttribute.m */; }; - 3AED060C1AD5A1400053CC65 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05E41AD5A0470053CC65 /* MASLayoutConstraint.m */; }; - 3AED060D1AD5A1400053CC65 /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05DF1AD5A0470053CC65 /* MASConstraint.m */; }; - 3AED060E1AD5A1400053CC65 /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05E91AD5A0470053CC65 /* MASViewConstraint.m */; }; - 3AED060F1AD5A1400053CC65 /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05DD1AD5A0470053CC65 /* MASCompositeConstraint.m */; }; - 3AED06101AD5A1400053CC65 /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05E21AD5A0470053CC65 /* MASConstraintMaker.m */; }; - 3AED06111AD5A1400053CC65 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05EE1AD5A0470053CC65 /* NSLayoutConstraint+MASDebugAdditions.m */; }; - 3AED06121AD5A1400053CC65 /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3AED05F01AD5A0470053CC65 /* View+MASAdditions.m */; }; - 3AED06151AD5A1400053CC65 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05EF1AD5A0470053CC65 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED06161AD5A1400053CC65 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05F11AD5A0470053CC65 /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED06171AD5A1400053CC65 /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05E61AD5A0470053CC65 /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED06181AD5A1400053CC65 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05BC1AD59FD40053CC65 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED06191AD5A1400053CC65 /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05E31AD5A0470053CC65 /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED061A1AD5A1400053CC65 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05E81AD5A0470053CC65 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED061B1AD5A1400053CC65 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05EC1AD5A0470053CC65 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED061C1AD5A1400053CC65 /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05E11AD5A0470053CC65 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED061D1AD5A1400053CC65 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05E01AD5A0470053CC65 /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 3AED061E1AD5A1400053CC65 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05E51AD5A0470053CC65 /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED061F1AD5A1400053CC65 /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05EA1AD5A0470053CC65 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED06201AD5A1400053CC65 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05DC1AD5A0470053CC65 /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED06211AD5A1400053CC65 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05ED1AD5A0470053CC65 /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3AED06221AD5A1400053CC65 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05DE1AD5A0470053CC65 /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4473548D1B39F772004DACCB /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4473548B1B39F772004DACCB /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4473548E1B39F772004DACCB /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4473548C1B39F772004DACCB /* ViewController+MASAdditions.m */; }; - 447354921B3A18B3004DACCB /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4473548C1B39F772004DACCB /* ViewController+MASAdditions.m */; }; - 447354931B3A18B9004DACCB /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4473548B1B39F772004DACCB /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASAdditions.h"; sourceTree = ""; }; + 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASAdditions.m"; sourceTree = ""; }; 3AED05B71AD59FD40053CC65 /* Masonry.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3AED05BB1AD59FD40053CC65 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 3AED05BC1AD59FD40053CC65 /* Masonry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Masonry.h; sourceTree = ""; }; @@ -85,7 +64,6 @@ 3AED05EF1AD5A0470053CC65 /* View+MASAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "View+MASAdditions.h"; sourceTree = ""; }; 3AED05F01AD5A0470053CC65 /* View+MASAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "View+MASAdditions.m"; sourceTree = ""; }; 3AED05F11AD5A0470053CC65 /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "View+MASShorthandAdditions.h"; sourceTree = ""; }; - 3AED06271AD5A1400053CC65 /* Masonry.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4473548B1B39F772004DACCB /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ViewController+MASAdditions.h"; sourceTree = ""; }; 4473548C1B39F772004DACCB /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ViewController+MASAdditions.m"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -98,13 +76,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3AED06131AD5A1400053CC65 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -120,7 +91,6 @@ isa = PBXGroup; children = ( 3AED05B71AD59FD40053CC65 /* Masonry.framework */, - 3AED06271AD5A1400053CC65 /* Masonry.framework */, ); name = Products; sourceTree = ""; @@ -135,6 +105,8 @@ 3AED05F11AD5A0470053CC65 /* View+MASShorthandAdditions.h */, 4473548B1B39F772004DACCB /* ViewController+MASAdditions.h */, 4473548C1B39F772004DACCB /* ViewController+MASAdditions.m */, + 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */, + 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */, 3AED05EA1AD5A0470053CC65 /* NSArray+MASAdditions.h */, 3AED05EB1AD5A0470053CC65 /* NSArray+MASAdditions.m */, 3AED05EC1AD5A0470053CC65 /* NSArray+MASShorthandAdditions.h */, @@ -176,6 +148,7 @@ 3AED06051AD5A0470053CC65 /* View+MASAdditions.h in Headers */, 3AED06071AD5A0470053CC65 /* View+MASShorthandAdditions.h in Headers */, 4473548D1B39F772004DACCB /* ViewController+MASAdditions.h in Headers */, + 15E414912663780600D3D1B6 /* LayoutGuide+MASAdditions.h in Headers */, 3AED05FC1AD5A0470053CC65 /* MASViewAttribute.h in Headers */, 3AED05BD1AD59FD40053CC65 /* Masonry.h in Headers */, 3AED05F91AD5A0470053CC65 /* MASLayoutConstraint.h in Headers */, @@ -191,34 +164,12 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3AED06141AD5A1400053CC65 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 3AED06151AD5A1400053CC65 /* View+MASAdditions.h in Headers */, - 3AED06161AD5A1400053CC65 /* View+MASShorthandAdditions.h in Headers */, - 3AED06171AD5A1400053CC65 /* MASViewAttribute.h in Headers */, - 3AED06181AD5A1400053CC65 /* Masonry.h in Headers */, - 3AED06191AD5A1400053CC65 /* MASLayoutConstraint.h in Headers */, - 3AED061A1AD5A1400053CC65 /* MASViewConstraint.h in Headers */, - 3AED061B1AD5A1400053CC65 /* NSArray+MASShorthandAdditions.h in Headers */, - 3AED061C1AD5A1400053CC65 /* MASConstraintMaker.h in Headers */, - 3AED061E1AD5A1400053CC65 /* MASUtilities.h in Headers */, - 3AED061F1AD5A1400053CC65 /* NSArray+MASAdditions.h in Headers */, - 3AED06201AD5A1400053CC65 /* MASCompositeConstraint.h in Headers */, - 447354931B3A18B9004DACCB /* ViewController+MASAdditions.h in Headers */, - 3AED06221AD5A1400053CC65 /* MASConstraint.h in Headers */, - 3AED061D1AD5A1400053CC65 /* MASConstraint+Private.h in Headers */, - 3AED06211AD5A1400053CC65 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 3AED05B61AD59FD40053CC65 /* Masonry iOS */ = { + 3AED05B61AD59FD40053CC65 /* Masonry */ = { isa = PBXNativeTarget; - buildConfigurationList = 3AED05CD1AD59FD40053CC65 /* Build configuration list for PBXNativeTarget "Masonry iOS" */; + buildConfigurationList = 3AED05CD1AD59FD40053CC65 /* Build configuration list for PBXNativeTarget "Masonry" */; buildPhases = ( 3AED05B21AD59FD40053CC65 /* Sources */, 3AED05B31AD59FD40053CC65 /* Frameworks */, @@ -229,29 +180,11 @@ ); dependencies = ( ); - name = "Masonry iOS"; + name = Masonry; productName = Masonry; productReference = 3AED05B71AD59FD40053CC65 /* Masonry.framework */; productType = "com.apple.product-type.framework"; }; - 3AED06081AD5A1400053CC65 /* Masonry OSX */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3AED06241AD5A1400053CC65 /* Build configuration list for PBXNativeTarget "Masonry OSX" */; - buildPhases = ( - 3AED06091AD5A1400053CC65 /* Sources */, - 3AED06131AD5A1400053CC65 /* Frameworks */, - 3AED06141AD5A1400053CC65 /* Headers */, - 3AED06231AD5A1400053CC65 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Masonry OSX"; - productName = Masonry; - productReference = 3AED06271AD5A1400053CC65 /* Masonry.framework */; - productType = "com.apple.product-type.framework"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -271,6 +204,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 3AED05AD1AD59FD40053CC65; @@ -278,8 +212,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 3AED05B61AD59FD40053CC65 /* Masonry iOS */, - 3AED06081AD5A1400053CC65 /* Masonry OSX */, + 3AED05B61AD59FD40053CC65 /* Masonry */, ); }; /* End PBXProject section */ @@ -292,13 +225,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3AED06231AD5A1400053CC65 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -309,6 +235,7 @@ 3AED06011AD5A0470053CC65 /* NSArray+MASAdditions.m in Sources */, 3AED05FD1AD5A0470053CC65 /* MASViewAttribute.m in Sources */, 4473548E1B39F772004DACCB /* ViewController+MASAdditions.m in Sources */, + 15E414922663780600D3D1B6 /* LayoutGuide+MASAdditions.m in Sources */, 3AED05FA1AD5A0470053CC65 /* MASLayoutConstraint.m in Sources */, 3AED05F51AD5A0470053CC65 /* MASConstraint.m in Sources */, 3AED05FF1AD5A0470053CC65 /* MASViewConstraint.m in Sources */, @@ -319,23 +246,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3AED06091AD5A1400053CC65 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3AED060A1AD5A1400053CC65 /* NSArray+MASAdditions.m in Sources */, - 3AED060B1AD5A1400053CC65 /* MASViewAttribute.m in Sources */, - 3AED060C1AD5A1400053CC65 /* MASLayoutConstraint.m in Sources */, - 3AED060D1AD5A1400053CC65 /* MASConstraint.m in Sources */, - 3AED060E1AD5A1400053CC65 /* MASViewConstraint.m in Sources */, - 3AED060F1AD5A1400053CC65 /* MASCompositeConstraint.m in Sources */, - 447354921B3A18B3004DACCB /* ViewController+MASAdditions.m in Sources */, - 3AED06101AD5A1400053CC65 /* MASConstraintMaker.m in Sources */, - 3AED06111AD5A1400053CC65 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, - 3AED06121AD5A1400053CC65 /* View+MASAdditions.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ @@ -386,6 +296,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACOSX_DEPLOYMENT_TARGET = 10.9; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; @@ -435,6 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACOSX_DEPLOYMENT_TARGET = 10.9; MTL_ENABLE_DEBUG_INFO = NO; TARGETED_DEVICE_FAMILY = "1,2"; @@ -455,10 +367,11 @@ INFOPLIST_FILE = Masonry/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; PRODUCT_BUNDLE_IDENTIFIER = "com.cloudling.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = Masonry; - SDKROOT = iphoneos; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; }; name = Debug; }; @@ -473,46 +386,11 @@ INFOPLIST_FILE = Masonry/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; PRODUCT_BUNDLE_IDENTIFIER = "com.cloudling.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = Masonry; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 3AED06251AD5A1400053CC65 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Masonry/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.cloudling.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = Masonry; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 3AED06261AD5A1400053CC65 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Masonry/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.cloudling.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = Masonry; - SDKROOT = macosx; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; }; name = Release; }; @@ -528,7 +406,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3AED05CD1AD59FD40053CC65 /* Build configuration list for PBXNativeTarget "Masonry iOS" */ = { + 3AED05CD1AD59FD40053CC65 /* Build configuration list for PBXNativeTarget "Masonry" */ = { isa = XCConfigurationList; buildConfigurations = ( 3AED05CE1AD59FD40053CC65 /* Debug */, @@ -537,15 +415,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3AED06241AD5A1400053CC65 /* Build configuration list for PBXNativeTarget "Masonry OSX" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3AED06251AD5A1400053CC65 /* Debug */, - 3AED06261AD5A1400053CC65 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 3AED05AE1AD59FD40053CC65 /* Project object */; diff --git a/Masonry.xcodeproj/xcshareddata/xcschemes/Masonry OSX.xcscheme b/Masonry.xcodeproj/xcshareddata/xcschemes/Masonry OSX.xcscheme deleted file mode 100644 index 17d12e9b..00000000 --- a/Masonry.xcodeproj/xcshareddata/xcschemes/Masonry OSX.xcscheme +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Masonry.xcodeproj/xcshareddata/xcschemes/Masonry iOS.xcscheme b/Masonry.xcodeproj/xcshareddata/xcschemes/Masonry.xcscheme similarity index 78% rename from Masonry.xcodeproj/xcshareddata/xcschemes/Masonry iOS.xcscheme rename to Masonry.xcodeproj/xcshareddata/xcschemes/Masonry.xcscheme index 61c34a76..124167eb 100644 --- a/Masonry.xcodeproj/xcshareddata/xcschemes/Masonry iOS.xcscheme +++ b/Masonry.xcodeproj/xcshareddata/xcschemes/Masonry.xcscheme @@ -1,6 +1,6 @@ @@ -26,35 +26,20 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" shouldUseLaunchSchemeArgsEnv = "YES"> - - - - - - - - diff --git a/Masonry/LayoutGuide+MASAdditions.h b/Masonry/LayoutGuide+MASAdditions.h new file mode 100644 index 00000000..1613bc1d --- /dev/null +++ b/Masonry/LayoutGuide+MASAdditions.h @@ -0,0 +1,63 @@ +// +// NSLayoutGuide+MASAdditions.h +// Masonry +// +// Created by v on 2021/5/30. +// Copyright © 2021 Jonas Budelmann. All rights reserved. +// + +#import "MASUtilities.h" +#import "MASConstraintMaker.h" +#import "MASViewAttribute.h" + +NS_ASSUME_NONNULL_BEGIN + +API_AVAILABLE(macos(10.11), ios(9.0)) +@interface MASLayoutGuide (MASAdditions) + +@property (nonatomic, strong, readonly) MASViewAttribute *mas_left; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_top; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_right; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottom; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_leading; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_trailing; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_width; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_height; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerX; +@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerY; + +/** + * Creates a MASConstraintMaker with the callee view. + * Any constraints defined are added to the view or the appropriate superview once the block has finished executing + * + * @param block scope within which you can build up the constraints which you wish to apply to the view. + * + * @return Array of created MASConstraints + */ +- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(id make))block; + +/** + * Creates a MASConstraintMaker with the callee view. + * Any constraints defined are added to the view or the appropriate superview once the block has finished executing. + * If an existing constraint exists then it will be updated instead. + * + * @param block scope within which you can build up the constraints which you wish to apply to the view. + * + * @return Array of created/updated MASConstraints + */ +- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(id make))block; + +/** + * Creates a MASConstraintMaker with the callee view. + * Any constraints defined are added to the view or the appropriate superview once the block has finished executing. + * All constraints previously installed for the view will be removed. + * + * @param block scope within which you can build up the constraints which you wish to apply to the view. + * + * @return Array of created/updated MASConstraints + */ +- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(id make))block; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/LayoutGuide+MASAdditions.m b/Masonry/LayoutGuide+MASAdditions.m new file mode 100644 index 00000000..764aad67 --- /dev/null +++ b/Masonry/LayoutGuide+MASAdditions.m @@ -0,0 +1,80 @@ +// +// NSLayoutGuide+MASAdditions.m +// Masonry +// +// Created by v on 2021/5/30. +// Copyright © 2021 Jonas Budelmann. All rights reserved. +// + +#import "LayoutGuide+MASAdditions.h" +#import + + +@implementation MASLayoutGuide (MASAdditions) + +- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(id make))block { + self.owningView.translatesAutoresizingMaskIntoConstraints = NO; + MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self.owningView item:self]; + block(constraintMaker); + return [constraintMaker install]; +} + +- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(id make))block { + self.owningView.translatesAutoresizingMaskIntoConstraints = NO; + MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self.owningView item:self]; + constraintMaker.updateExisting = YES; + block(constraintMaker); + return [constraintMaker install]; +} + +- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(id make))block { + self.owningView.translatesAutoresizingMaskIntoConstraints = NO; + MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self.owningView item:self]; + constraintMaker.removeExisting = YES; + block(constraintMaker); + return [constraintMaker install]; +} + +#pragma mark - NSLayoutAttribute properties + +- (MASViewAttribute *)mas_left { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeLeft]; +} + +- (MASViewAttribute *)mas_top { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeTop]; +} + +- (MASViewAttribute *)mas_right { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeRight]; +} + +- (MASViewAttribute *)mas_bottom { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeBottom]; +} + +- (MASViewAttribute *)mas_leading { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeLeading]; +} + +- (MASViewAttribute *)mas_trailing { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeTrailing]; +} + +- (MASViewAttribute *)mas_width { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeWidth]; +} + +- (MASViewAttribute *)mas_height { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeHeight]; +} + +- (MASViewAttribute *)mas_centerX { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeCenterX]; +} + +- (MASViewAttribute *)mas_centerY { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeCenterY]; +} + +@end diff --git a/Masonry/MASConstraintMaker.h b/Masonry/MASConstraintMaker.h index 9a0bc8df..67100b92 100644 --- a/Masonry/MASConstraintMaker.h +++ b/Masonry/MASConstraintMaker.h @@ -40,12 +40,27 @@ typedef NS_OPTIONS(NSInteger, MASAttribute) { }; +@protocol MASLayoutConstraint + +@property (nonatomic, strong, readonly) MASConstraint *left; +@property (nonatomic, strong, readonly) MASConstraint *top; +@property (nonatomic, strong, readonly) MASConstraint *right; +@property (nonatomic, strong, readonly) MASConstraint *bottom; +@property (nonatomic, strong, readonly) MASConstraint *leading; +@property (nonatomic, strong, readonly) MASConstraint *trailing; +@property (nonatomic, strong, readonly) MASConstraint *width; +@property (nonatomic, strong, readonly) MASConstraint *height; +@property (nonatomic, strong, readonly) MASConstraint *centerX; +@property (nonatomic, strong, readonly) MASConstraint *centerY; + +@end + /** * Provides factory methods for creating MASConstraints. * Constraints are collected until they are ready to be installed * */ -@interface MASConstraintMaker : NSObject +@interface MASConstraintMaker : NSObject /** * The following properties return a new MASViewConstraint @@ -126,6 +141,8 @@ typedef NS_OPTIONS(NSInteger, MASAttribute) { */ - (id)initWithView:(MAS_VIEW *)view; +- (id)initWithView:(MAS_VIEW *)view item:(id)item; + /** * Calls install method on any MASConstraints which have been created by this maker * diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index 26d377be..ec6afc1d 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -16,6 +16,7 @@ @interface MASConstraintMaker () @property (nonatomic, weak) MAS_VIEW *view; +@property (nonatomic, weak) id item; @property (nonatomic, strong) NSMutableArray *constraints; @end @@ -23,12 +24,17 @@ @interface MASConstraintMaker () @implementation MASConstraintMaker - (id)initWithView:(MAS_VIEW *)view { + return [self initWithView:view item:nil]; +} + +- (id)initWithView:(MAS_VIEW *)view item:(id)item { self = [super init]; if (!self) return nil; - + self.view = view; + self.item = item; self.constraints = NSMutableArray.new; - + return self; } @@ -57,7 +63,7 @@ - (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(M } - (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute { - MASViewAttribute *viewAttribute = [[MASViewAttribute alloc] initWithView:self.view layoutAttribute:layoutAttribute]; + MASViewAttribute *viewAttribute = [[MASViewAttribute alloc] initWithView:self.view item:self.item layoutAttribute:layoutAttribute]; MASViewConstraint *newConstraint = [[MASViewConstraint alloc] initWithFirstViewAttribute:viewAttribute]; if ([constraint isKindOfClass:MASViewConstraint.class]) { //replace with composite constraint diff --git a/Masonry/MASUtilities.h b/Masonry/MASUtilities.h index 1dbfd938..7d3f472e 100644 --- a/Masonry/MASUtilities.h +++ b/Masonry/MASUtilities.h @@ -14,6 +14,7 @@ #import #define MAS_VIEW UIView + #define MASLayoutGuide UILayoutGuide #define MAS_VIEW_CONTROLLER UIViewController #define MASEdgeInsets UIEdgeInsets @@ -28,6 +29,7 @@ #import #define MAS_VIEW NSView + #define MASLayoutGuide NSLayoutGuide #define MASEdgeInsets NSEdgeInsets typedef NSLayoutPriority MASLayoutPriority; diff --git a/Masonry/MASViewAttribute.m b/Masonry/MASViewAttribute.m index e573e8bd..e55163ef 100644 --- a/Masonry/MASViewAttribute.m +++ b/Masonry/MASViewAttribute.m @@ -20,7 +20,7 @@ - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttri if (!self) return nil; _view = view; - _item = item; + _item = item?:view; _layoutAttribute = layoutAttribute; return self; diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index af3f0b44..127b17b5 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -35,6 +35,21 @@ - (NSMutableSet *)mas_installedConstraints { @end +@interface MASLayoutGuide (MASConstraints) + +@property (nonatomic, readonly) NSMutableSet *mas_installedConstraints; + +@end + +@implementation MASLayoutGuide (MASConstraints) + +- (NSMutableSet *)mas_installedConstraints { + return self.owningView.mas_installedConstraints; +} + +@end + + @interface MASViewConstraint () @property (nonatomic, strong, readwrite) MASViewAttribute *secondViewAttribute; diff --git a/Masonry/Masonry.h b/Masonry/Masonry.h index d1bd579d..f37b1edb 100644 --- a/Masonry/Masonry.h +++ b/Masonry/Masonry.h @@ -18,6 +18,7 @@ FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; #import "View+MASAdditions.h" #import "View+MASShorthandAdditions.h" #import "ViewController+MASAdditions.h" +#import "LayoutGuide+MASAdditions.h" #import "NSArray+MASAdditions.h" #import "NSArray+MASShorthandAdditions.h" #import "MASConstraint.h" diff --git a/Masonry/NSArray+MASAdditions.m b/Masonry/NSArray+MASAdditions.m index 831d8cda..f31390ae 100644 --- a/Masonry/NSArray+MASAdditions.m +++ b/Masonry/NSArray+MASAdditions.m @@ -11,7 +11,7 @@ @implementation NSArray (MASAdditions) -- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block { +- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block { NSMutableArray *constraints = [NSMutableArray array]; for (MAS_VIEW *view in self) { NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views"); @@ -20,7 +20,7 @@ - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block { return constraints; } -- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block { +- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block { NSMutableArray *constraints = [NSMutableArray array]; for (MAS_VIEW *view in self) { NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views"); @@ -29,7 +29,7 @@ - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block { return constraints; } -- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block { +- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block { NSMutableArray *constraints = [NSMutableArray array]; for (MAS_VIEW *view in self) { NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views"); diff --git a/Masonry/View+MASAdditions.m b/Masonry/View+MASAdditions.m index b99316ad..bfc17cc5 100644 --- a/Masonry/View+MASAdditions.m +++ b/Masonry/View+MASAdditions.m @@ -11,14 +11,14 @@ @implementation MAS_VIEW (MASAdditions) -- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block { +- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { self.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self]; block(constraintMaker); return [constraintMaker install]; } -- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block { +- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { self.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self]; constraintMaker.updateExisting = YES; @@ -26,7 +26,7 @@ - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block { return [constraintMaker install]; } -- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block { +- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block { self.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self]; constraintMaker.removeExisting = YES; From 08e05b109e8fd3e448dc971fd3662caebcef8e04 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Sun, 30 May 2021 20:53:32 +0800 Subject: [PATCH 02/32] update deployment target of Masonry.podspec --- Masonry.podspec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Masonry.podspec b/Masonry.podspec index 51e2b94b..e8d67fa3 100644 --- a/Masonry.podspec +++ b/Masonry.podspec @@ -1,13 +1,13 @@ Pod::Spec.new do |s| s.name = 'Masonry' - s.version = '1.1.0' + s.version = '1.1.1' s.license = 'MIT' s.summary = 'Harness the power of Auto Layout NSLayoutConstraints with a simplified, chainable and expressive syntax.' - s.homepage = 'https://github.com/cloudkite/Masonry' + s.homepage = 'https://github.com/SnapKit/Masonry' s.author = { 'Jonas Budelmann' => 'jonas.budelmann@gmail.com' } s.social_media_url = "http://twitter.com/cloudkite" - s.source = { :git => 'https://github.com/cloudkite/Masonry.git', :tag => "v#{s.version}" } + s.source = { :git => 'https://github.com/SnapKit/Masonry.git', :tag => "v#{s.version}" } s.description = %{ Masonry is a light-weight layout framework which wraps AutoLayout with a nicer syntax. @@ -31,8 +31,8 @@ Pod::Spec.new do |s| s.tvos.frameworks = 'Foundation', 'UIKit' s.osx.frameworks = 'Foundation', 'AppKit' - s.ios.deployment_target = '6.0' # minimum SDK with autolayout - s.osx.deployment_target = '10.7' # minimum SDK with autolayout + s.ios.deployment_target = '9.0' # minimum SDK with autolayout + s.osx.deployment_target = '10.9' # minimum SDK with autolayout s.tvos.deployment_target = '9.0' # minimum SDK with autolayout s.requires_arc = true end From dcbe1d99210ddd27865a5d1a30e37c188c1630da Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Mon, 31 May 2021 00:22:17 +0800 Subject: [PATCH 03/32] move edges/size/center to MASLayoutConstraint protocol --- Masonry/MASConstraintMaker.h | 21 +++++++++++++++++++++ Masonry/MASConstraintMaker.m | 25 ++++++++++++++----------- Masonry/MASViewConstraint.m | 7 ++++++- 3 files changed, 41 insertions(+), 12 deletions(-) diff --git a/Masonry/MASConstraintMaker.h b/Masonry/MASConstraintMaker.h index 67100b92..2f94a751 100644 --- a/Masonry/MASConstraintMaker.h +++ b/Masonry/MASConstraintMaker.h @@ -53,6 +53,27 @@ typedef NS_OPTIONS(NSInteger, MASAttribute) { @property (nonatomic, strong, readonly) MASConstraint *centerX; @property (nonatomic, strong, readonly) MASConstraint *centerY; +/** + * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeEdges + * which generates the appropriate MASViewConstraint children (top, left, bottom, right) + * with the first item set to the makers associated view + */ +@property (nonatomic, strong, readonly) MASConstraint *edges; + +/** + * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeSize + * which generates the appropriate MASViewConstraint children (width, height) + * with the first item set to the makers associated view + */ +@property (nonatomic, strong, readonly) MASConstraint *size; + +/** + * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeCenter + * which generates the appropriate MASViewConstraint children (centerX, centerY) + * with the first item set to the makers associated view + */ +@property (nonatomic, strong, readonly) MASConstraint *center; + @end /** diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index ec6afc1d..2e973779 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -12,11 +12,12 @@ #import "MASConstraint+Private.h" #import "MASViewAttribute.h" #import "View+MASAdditions.h" +#import "LayoutGuide+MASAdditions.h" @interface MASConstraintMaker () @property (nonatomic, weak) MAS_VIEW *view; -@property (nonatomic, weak) id item; +@property (nonatomic, weak) MASLayoutGuide *item; @property (nonatomic, strong) NSMutableArray *constraints; @end @@ -95,17 +96,19 @@ - (MASConstraint *)addConstraintWithAttributes:(MASAttribute)attrs { NSAssert((attrs & anyAttribute) != 0, @"You didn't pass any attribute to make.attributes(...)"); NSMutableArray *attributes = [NSMutableArray array]; + +#define layoutItem ((MAS_VIEW *)(self.item ?: self.view)) - if (attrs & MASAttributeLeft) [attributes addObject:self.view.mas_left]; - if (attrs & MASAttributeRight) [attributes addObject:self.view.mas_right]; - if (attrs & MASAttributeTop) [attributes addObject:self.view.mas_top]; - if (attrs & MASAttributeBottom) [attributes addObject:self.view.mas_bottom]; - if (attrs & MASAttributeLeading) [attributes addObject:self.view.mas_leading]; - if (attrs & MASAttributeTrailing) [attributes addObject:self.view.mas_trailing]; - if (attrs & MASAttributeWidth) [attributes addObject:self.view.mas_width]; - if (attrs & MASAttributeHeight) [attributes addObject:self.view.mas_height]; - if (attrs & MASAttributeCenterX) [attributes addObject:self.view.mas_centerX]; - if (attrs & MASAttributeCenterY) [attributes addObject:self.view.mas_centerY]; + if (attrs & MASAttributeLeft) [attributes addObject:layoutItem.mas_left]; + if (attrs & MASAttributeRight) [attributes addObject:layoutItem.mas_right]; + if (attrs & MASAttributeTop) [attributes addObject:layoutItem.mas_top]; + if (attrs & MASAttributeBottom) [attributes addObject:layoutItem.mas_bottom]; + if (attrs & MASAttributeLeading) [attributes addObject:layoutItem.mas_leading]; + if (attrs & MASAttributeTrailing) [attributes addObject:layoutItem.mas_trailing]; + if (attrs & MASAttributeWidth) [attributes addObject:layoutItem.mas_width]; + if (attrs & MASAttributeHeight) [attributes addObject:layoutItem.mas_height]; + if (attrs & MASAttributeCenterX) [attributes addObject:layoutItem.mas_centerX]; + if (attrs & MASAttributeCenterY) [attributes addObject:layoutItem.mas_centerY]; if (attrs & MASAttributeBaseline) [attributes addObject:self.view.mas_baseline]; if (attrs & MASAttributeFirstBaseline) [attributes addObject:self.view.mas_firstBaseline]; if (attrs & MASAttributeLastBaseline) [attributes addObject:self.view.mas_lastBaseline]; diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index 127b17b5..04d92101 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -136,7 +136,12 @@ - (BOOL)hasBeenInstalled { - (void)setSecondViewAttribute:(id)secondViewAttribute { if ([secondViewAttribute isKindOfClass:NSValue.class]) { - [self setLayoutConstantWithValue:secondViewAttribute]; + if ([_firstViewAttribute.item isKindOfClass:MASLayoutGuide.class]) { + _secondViewAttribute = [[MASViewAttribute alloc] initWithView:_firstViewAttribute.view + layoutAttribute:self.firstViewAttribute.layoutAttribute]; + } else { + [self setLayoutConstantWithValue:secondViewAttribute]; + } } else if ([secondViewAttribute isKindOfClass:MAS_VIEW.class]) { _secondViewAttribute = [[MASViewAttribute alloc] initWithView:secondViewAttribute layoutAttribute:self.firstViewAttribute.layoutAttribute]; } else if ([secondViewAttribute isKindOfClass:MASViewAttribute.class]) { From 7cf64524248a7d7c97ef2d14983d1890c27029a1 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Mon, 31 May 2021 00:32:51 +0800 Subject: [PATCH 04/32] add MASLayoutGuide as secondViewAttribute support --- Masonry/MASViewConstraint.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index 04d92101..2bf157a7 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -147,10 +147,14 @@ - (void)setSecondViewAttribute:(id)secondViewAttribute { } else if ([secondViewAttribute isKindOfClass:MASViewAttribute.class]) { MASViewAttribute *attr = secondViewAttribute; if (attr.layoutAttribute == NSLayoutAttributeNotAnAttribute) { - _secondViewAttribute = [[MASViewAttribute alloc] initWithView:attr.view item:attr.item layoutAttribute:self.firstViewAttribute.layoutAttribute];; + _secondViewAttribute = [[MASViewAttribute alloc] initWithView:attr.view item:attr.item layoutAttribute:self.firstViewAttribute.layoutAttribute]; } else { _secondViewAttribute = secondViewAttribute; } + } else if ([secondViewAttribute isKindOfClass:MASLayoutGuide.class]) { + _secondViewAttribute = [[MASViewAttribute alloc] initWithView:((MASLayoutGuide *)secondViewAttribute).owningView + item:secondViewAttribute + layoutAttribute:self.firstViewAttribute.layoutAttribute]; } else { NSAssert(NO, @"attempting to add unsupported attribute: %@", secondViewAttribute); } From b59824e679ec900b90a0c89247da9b0ae6bf1d9b Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Mon, 31 May 2021 07:37:21 +0800 Subject: [PATCH 05/32] add tvos deployment target --- Masonry.podspec | 4 ++-- Masonry.xcodeproj/project.pbxproj | 22 ++++++++++++++----- Masonry/MASConstraint.m | 2 +- Masonry/MASConstraintMaker.h | 3 ++- Masonry/MASConstraintMaker.m | 4 ++-- .../NSLayoutConstraint+MASDebugAdditions.m | 2 +- Masonry/View+MASAdditions.m | 2 +- 7 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Masonry.podspec b/Masonry.podspec index e8d67fa3..e4174063 100644 --- a/Masonry.podspec +++ b/Masonry.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Masonry' - s.version = '1.1.1' + s.version = '1.2.0' s.license = 'MIT' s.summary = 'Harness the power of Auto Layout NSLayoutConstraints with a simplified, chainable and expressive syntax.' s.homepage = 'https://github.com/SnapKit/Masonry' @@ -32,7 +32,7 @@ Pod::Spec.new do |s| s.osx.frameworks = 'Foundation', 'AppKit' s.ios.deployment_target = '9.0' # minimum SDK with autolayout - s.osx.deployment_target = '10.9' # minimum SDK with autolayout + s.osx.deployment_target = '10.11' # minimum SDK with autolayout s.tvos.deployment_target = '9.0' # minimum SDK with autolayout s.requires_arc = true end diff --git a/Masonry.xcodeproj/project.pbxproj b/Masonry.xcodeproj/project.pbxproj index a0e07880..937667af 100644 --- a/Masonry.xcodeproj/project.pbxproj +++ b/Masonry.xcodeproj/project.pbxproj @@ -191,7 +191,7 @@ 3AED05AE1AD59FD40053CC65 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0900; + LastUpgradeCheck = 1250; ORGANIZATIONNAME = "Jonas Budelmann"; TargetAttributes = { 3AED05B61AD59FD40053CC65 = { @@ -262,14 +262,17 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -297,12 +300,14 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; TARGETED_DEVICE_FAMILY = "1,2"; + TVOS_DEPLOYMENT_TARGET = 9.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; @@ -319,14 +324,17 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -347,12 +355,14 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.9; + MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = NO; TARGETED_DEVICE_FAMILY = "1,2"; + TVOS_DEPLOYMENT_TARGET = 9.0; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; @@ -371,7 +381,8 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.cloudling.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = Masonry; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; + TARGETED_DEVICE_FAMILY = "1,2,3,6"; }; name = Debug; }; @@ -390,7 +401,8 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.cloudling.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = Masonry; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator"; + TARGETED_DEVICE_FAMILY = "1,2,3,6"; }; name = Release; }; diff --git a/Masonry/MASConstraint.m b/Masonry/MASConstraint.m index b8841e58..099d6dfe 100644 --- a/Masonry/MASConstraint.m +++ b/Masonry/MASConstraint.m @@ -212,7 +212,7 @@ - (MASConstraint *)centerY { } - (MASConstraint *)baseline { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBaseline]; + return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLastBaseline]; } - (MASConstraint *)firstBaseline { diff --git a/Masonry/MASConstraintMaker.h b/Masonry/MASConstraintMaker.h index 2f94a751..d700e8ff 100644 --- a/Masonry/MASConstraintMaker.h +++ b/Masonry/MASConstraintMaker.h @@ -20,10 +20,11 @@ typedef NS_OPTIONS(NSInteger, MASAttribute) { MASAttributeHeight = 1 << NSLayoutAttributeHeight, MASAttributeCenterX = 1 << NSLayoutAttributeCenterX, MASAttributeCenterY = 1 << NSLayoutAttributeCenterY, - MASAttributeBaseline = 1 << NSLayoutAttributeBaseline, MASAttributeFirstBaseline = 1 << NSLayoutAttributeFirstBaseline, MASAttributeLastBaseline = 1 << NSLayoutAttributeLastBaseline, + + MASAttributeBaseline = MASAttributeLastBaseline, #if TARGET_OS_IPHONE || TARGET_OS_TV diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index 2e973779..e8ca4057 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -17,7 +17,7 @@ @interface MASConstraintMaker () @property (nonatomic, weak) MAS_VIEW *view; -@property (nonatomic, weak) MASLayoutGuide *item; +@property (nonatomic, weak) id item; @property (nonatomic, strong) NSMutableArray *constraints; @end @@ -185,7 +185,7 @@ - (MASConstraint *)centerY { } - (MASConstraint *)baseline { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBaseline]; + return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLastBaseline]; } - (MASConstraint *(^)(MASAttribute))attributes { diff --git a/Masonry/NSLayoutConstraint+MASDebugAdditions.m b/Masonry/NSLayoutConstraint+MASDebugAdditions.m index f6c43f54..b365fd7e 100644 --- a/Masonry/NSLayoutConstraint+MASDebugAdditions.m +++ b/Masonry/NSLayoutConstraint+MASDebugAdditions.m @@ -42,7 +42,7 @@ + (NSDictionary *)layoutAttributeDescriptionsByValue { @(NSLayoutAttributeHeight) : @"height", @(NSLayoutAttributeCenterX) : @"centerX", @(NSLayoutAttributeCenterY) : @"centerY", - @(NSLayoutAttributeBaseline) : @"baseline", + @(NSLayoutAttributeFirstBaseline) : @"firstBaseline", @(NSLayoutAttributeLastBaseline) : @"lastBaseline", diff --git a/Masonry/View+MASAdditions.m b/Masonry/View+MASAdditions.m index bfc17cc5..6ddc5f33 100644 --- a/Masonry/View+MASAdditions.m +++ b/Masonry/View+MASAdditions.m @@ -77,7 +77,7 @@ - (MASViewAttribute *)mas_centerY { } - (MASViewAttribute *)mas_baseline { - return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBaseline]; + return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLastBaseline]; } - (MASViewAttribute *(^)(NSLayoutAttribute))mas_attribute From 93016880d77719f3e6884426b0188d32267e5f55 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Mon, 31 May 2021 07:59:57 +0800 Subject: [PATCH 06/32] rename [MASConstraintMaker initWithView:item:] to [MASConstraintMaker initWithLayoutGuide:] --- Masonry/LayoutGuide+MASAdditions.m | 6 +++--- Masonry/MASConstraintMaker.h | 2 +- Masonry/MASConstraintMaker.m | 17 ++++++++++++----- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Masonry/LayoutGuide+MASAdditions.m b/Masonry/LayoutGuide+MASAdditions.m index 764aad67..eb6533f2 100644 --- a/Masonry/LayoutGuide+MASAdditions.m +++ b/Masonry/LayoutGuide+MASAdditions.m @@ -14,14 +14,14 @@ @implementation MASLayoutGuide (MASAdditions) - (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(id make))block { self.owningView.translatesAutoresizingMaskIntoConstraints = NO; - MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self.owningView item:self]; + MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; block(constraintMaker); return [constraintMaker install]; } - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(id make))block { self.owningView.translatesAutoresizingMaskIntoConstraints = NO; - MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self.owningView item:self]; + MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; constraintMaker.updateExisting = YES; block(constraintMaker); return [constraintMaker install]; @@ -29,7 +29,7 @@ - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(id - (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(id make))block { self.owningView.translatesAutoresizingMaskIntoConstraints = NO; - MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self.owningView item:self]; + MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; constraintMaker.removeExisting = YES; block(constraintMaker); return [constraintMaker install]; diff --git a/Masonry/MASConstraintMaker.h b/Masonry/MASConstraintMaker.h index d700e8ff..20e82984 100644 --- a/Masonry/MASConstraintMaker.h +++ b/Masonry/MASConstraintMaker.h @@ -163,7 +163,7 @@ typedef NS_OPTIONS(NSInteger, MASAttribute) { */ - (id)initWithView:(MAS_VIEW *)view; -- (id)initWithView:(MAS_VIEW *)view item:(id)item; +- (id)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide API_AVAILABLE(macos(10.11), ios(9.0)); /** * Calls install method on any MASConstraints which have been created by this maker diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index e8ca4057..4fa1c250 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -17,7 +17,7 @@ @interface MASConstraintMaker () @property (nonatomic, weak) MAS_VIEW *view; -@property (nonatomic, weak) id item; +@property (nullable, nonatomic, weak) MASLayoutGuide *item; @property (nonatomic, strong) NSMutableArray *constraints; @end @@ -25,15 +25,22 @@ @interface MASConstraintMaker () @implementation MASConstraintMaker - (id)initWithView:(MAS_VIEW *)view { - return [self initWithView:view item:nil]; + self = [super init]; + if (!self) return nil; + + self.view = view; + self.constraints = NSMutableArray.new; + + return self; } -- (id)initWithView:(MAS_VIEW *)view item:(id)item { +- (id)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide { + NSAssert(layoutGuide.owningView != nil, @"layoutGuide's owningView must not be nil"); self = [super init]; if (!self) return nil; - self.view = view; - self.item = item; + self.view = layoutGuide.owningView; + self.item = layoutGuide; self.constraints = NSMutableArray.new; return self; From a6d20a2bd195b5733f568e1eb5621be3b77cbc15 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Mon, 31 May 2021 18:51:42 +0800 Subject: [PATCH 07/32] replace _firstViewAttribute with self.firstViewAttribute --- Masonry/MASViewConstraint.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index 2bf157a7..e5b07606 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -136,8 +136,8 @@ - (BOOL)hasBeenInstalled { - (void)setSecondViewAttribute:(id)secondViewAttribute { if ([secondViewAttribute isKindOfClass:NSValue.class]) { - if ([_firstViewAttribute.item isKindOfClass:MASLayoutGuide.class]) { - _secondViewAttribute = [[MASViewAttribute alloc] initWithView:_firstViewAttribute.view + if ([self.firstViewAttribute.item isKindOfClass:MASLayoutGuide.class]) { + _secondViewAttribute = [[MASViewAttribute alloc] initWithView:self.firstViewAttribute.view layoutAttribute:self.firstViewAttribute.layoutAttribute]; } else { [self setLayoutConstantWithValue:secondViewAttribute]; From 852b469aaaa0647d9379b959e84e710c27fa7366 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Mon, 31 May 2021 21:59:47 +0800 Subject: [PATCH 08/32] add swiftpm support --- Package.swift | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Package.swift diff --git a/Package.swift b/Package.swift new file mode 100644 index 00000000..e35135dd --- /dev/null +++ b/Package.swift @@ -0,0 +1,29 @@ +// swift-tools-version:5.0 +// The swift-tools-version declares the minimum version of Swift required to build this package. +import PackageDescription + +let package = Package( + name: "Masonry", + platforms: [ + .macOS(.v10_11), + .iOS(.v9), + .tvOS(.v9) + ], + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "Masonry", + targets: ["Masonry"]) + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "Masonry", + path: ".", + exclude: ["Masonry/Info.plist"], + sources: ["Masonry"], + publicHeadersPath: "Masonry" + ) + ] +) From 31167548750c7e588e6c2c017cb49d79b5c7c369 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Mon, 31 May 2021 23:28:21 +0800 Subject: [PATCH 09/32] Use Xcode 12 for travis --- .travis.yml | 11 ++++++----- .../Specs/NSLayoutConstraint+MASDebugAdditionsSpec.m | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 765668b7..9b60a467 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,17 @@ --- language: objective-c -osx_image: xcode9 +osx_image: xcode12 before_install: - - sudo easy_install cpp-coveralls + - curl -L https://bootstrap.pypa.io/pip/2.7/get-pip.py | sudo python + - sudo pip install cpp-coveralls - gem install xcpretty -N - export LANG=en_US.UTF-8 script: - set -o pipefail - - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry iOS Tests' -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.0' clean test ARCHS=i386 VALID_ARCHS=i386 ONLY_ACTIVE_ARCH=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcpretty -c - - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry iOS' -configuration Debug -sdk iphonesimulator clean build ARCHS=i386 VALID_ARCHS=i386 ONLY_ACTIVE_ARCH=NO | xcpretty -c - - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry OSX' -configuration Debug clean build | xcpretty -c + - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry iOS Tests' -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 8,OS=14.0' clean test ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcpretty -c + - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry' -configuration Debug -sdk iphonesimulator clean build ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO | xcpretty -c + - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry' -configuration Debug -sdk macosx clean build | xcpretty -c after_success: - ./script/coveralls.sh diff --git a/Tests/Specs/NSLayoutConstraint+MASDebugAdditionsSpec.m b/Tests/Specs/NSLayoutConstraint+MASDebugAdditionsSpec.m index a9d4061a..11b1d218 100644 --- a/Tests/Specs/NSLayoutConstraint+MASDebugAdditionsSpec.m +++ b/Tests/Specs/NSLayoutConstraint+MASDebugAdditionsSpec.m @@ -35,7 +35,7 @@ - (void)testDisplayLayoutConstraintKey { MASLayoutConstraint *layoutConstraint = [MASLayoutConstraint constraintWithItem:newView1 attribute:NSLayoutAttributeBaseline relatedBy:NSLayoutRelationEqual toItem:newView2 attribute:NSLayoutAttributeTop multiplier:2 constant:300]; layoutConstraint.mas_key = @"helloConstraint"; - NSString *description = [NSString stringWithFormat:@"", MAS_VIEW.class, MAS_VIEW.class]; + NSString *description = [NSString stringWithFormat:@"", MAS_VIEW.class, MAS_VIEW.class]; expect([layoutConstraint description]).to.equal(description); } @@ -57,4 +57,4 @@ - (void)testDisplayConstraintKey { expect([superview.constraints[0] description]).to.equal(description); } -SpecEnd \ No newline at end of file +SpecEnd From 91b6f93ff68988e5b639c7de314272bff16f6064 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 07:00:50 +0800 Subject: [PATCH 10/32] add shorthand for MASLayoutGuide --- Masonry.xcodeproj/project.pbxproj | 4 ++ Masonry/LayoutGuide+MASAdditions.h | 4 +- Masonry/LayoutGuide+MASAdditions.m | 8 ++- Masonry/LayoutGuide+MASShorthandAdditions.h | 74 +++++++++++++++++++++ Masonry/MASUtilities.h | 10 +++ Masonry/Masonry.h | 1 + Masonry/View+MASAdditions.h | 22 +++--- Masonry/View+MASAdditions.m | 3 +- Masonry/View+MASShorthandAdditions.h | 50 ++++++-------- 9 files changed, 131 insertions(+), 45 deletions(-) create mode 100644 Masonry/LayoutGuide+MASShorthandAdditions.h diff --git a/Masonry.xcodeproj/project.pbxproj b/Masonry.xcodeproj/project.pbxproj index 937667af..04074021 100644 --- a/Masonry.xcodeproj/project.pbxproj +++ b/Masonry.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 1539A4A42665991900892F49 /* LayoutGuide+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1539A4A22665991900892F49 /* LayoutGuide+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15E414912663780600D3D1B6 /* LayoutGuide+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15E414922663780600D3D1B6 /* LayoutGuide+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */; }; 3AED05BD1AD59FD40053CC65 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05BC1AD59FD40053CC65 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -37,6 +38,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 1539A4A22665991900892F49 /* LayoutGuide+MASShorthandAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASShorthandAdditions.h"; sourceTree = ""; }; 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASAdditions.h"; sourceTree = ""; }; 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASAdditions.m"; sourceTree = ""; }; 3AED05B71AD59FD40053CC65 /* Masonry.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -107,6 +109,7 @@ 4473548C1B39F772004DACCB /* ViewController+MASAdditions.m */, 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */, 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */, + 1539A4A22665991900892F49 /* LayoutGuide+MASShorthandAdditions.h */, 3AED05EA1AD5A0470053CC65 /* NSArray+MASAdditions.h */, 3AED05EB1AD5A0470053CC65 /* NSArray+MASAdditions.m */, 3AED05EC1AD5A0470053CC65 /* NSArray+MASShorthandAdditions.h */, @@ -149,6 +152,7 @@ 3AED06071AD5A0470053CC65 /* View+MASShorthandAdditions.h in Headers */, 4473548D1B39F772004DACCB /* ViewController+MASAdditions.h in Headers */, 15E414912663780600D3D1B6 /* LayoutGuide+MASAdditions.h in Headers */, + 1539A4A42665991900892F49 /* LayoutGuide+MASShorthandAdditions.h in Headers */, 3AED05FC1AD5A0470053CC65 /* MASViewAttribute.h in Headers */, 3AED05BD1AD59FD40053CC65 /* Masonry.h in Headers */, 3AED05F91AD5A0470053CC65 /* MASLayoutConstraint.h in Headers */, diff --git a/Masonry/LayoutGuide+MASAdditions.h b/Masonry/LayoutGuide+MASAdditions.h index 1613bc1d..d01c6dc9 100644 --- a/Masonry/LayoutGuide+MASAdditions.h +++ b/Masonry/LayoutGuide+MASAdditions.h @@ -1,5 +1,5 @@ // -// NSLayoutGuide+MASAdditions.h +// LayoutGuide+MASAdditions.h // Masonry // // Created by v on 2021/5/30. @@ -26,6 +26,8 @@ API_AVAILABLE(macos(10.11), ios(9.0)) @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerX; @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerY; +@property (nonatomic, strong, readonly) MASViewAttribute *(^mas_attribute)(NSLayoutAttribute attr); + /** * Creates a MASConstraintMaker with the callee view. * Any constraints defined are added to the view or the appropriate superview once the block has finished executing diff --git a/Masonry/LayoutGuide+MASAdditions.m b/Masonry/LayoutGuide+MASAdditions.m index eb6533f2..9f801488 100644 --- a/Masonry/LayoutGuide+MASAdditions.m +++ b/Masonry/LayoutGuide+MASAdditions.m @@ -1,5 +1,5 @@ // -// NSLayoutGuide+MASAdditions.m +// LayoutGuide+MASAdditions.m // Masonry // // Created by v on 2021/5/30. @@ -77,4 +77,10 @@ - (MASViewAttribute *)mas_centerY { return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeCenterY]; } +- (MASViewAttribute *(^)(NSLayoutAttribute))mas_attribute { + return ^(NSLayoutAttribute attr) { + return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:attr]; + }; +} + @end diff --git a/Masonry/LayoutGuide+MASShorthandAdditions.h b/Masonry/LayoutGuide+MASShorthandAdditions.h new file mode 100644 index 00000000..31546836 --- /dev/null +++ b/Masonry/LayoutGuide+MASShorthandAdditions.h @@ -0,0 +1,74 @@ +// +// LayoutGuide+MASShorthandAdditions.h +// Masonry +// +// Created by v on 2021/6/1. +// Copyright © 2021 Jonas Budelmann. All rights reserved. +// + +#import "LayoutGuide+MASAdditions.h" + +NS_ASSUME_NONNULL_BEGIN + +#ifdef MAS_SHORTHAND + +/** + * Shorthand view additions without the 'mas_' prefixes, + * only enabled if MAS_SHORTHAND is defined + */ +API_AVAILABLE(macos(10.11), ios(9.0)) +@interface MASLayoutGuide (MASShorthandAdditions) + +@property (nonatomic, strong, readonly) MASViewAttribute *left; +@property (nonatomic, strong, readonly) MASViewAttribute *top; +@property (nonatomic, strong, readonly) MASViewAttribute *right; +@property (nonatomic, strong, readonly) MASViewAttribute *bottom; +@property (nonatomic, strong, readonly) MASViewAttribute *leading; +@property (nonatomic, strong, readonly) MASViewAttribute *trailing; +@property (nonatomic, strong, readonly) MASViewAttribute *width; +@property (nonatomic, strong, readonly) MASViewAttribute *height; +@property (nonatomic, strong, readonly) MASViewAttribute *centerX; +@property (nonatomic, strong, readonly) MASViewAttribute *centerY; + +@property (nonatomic, strong, readonly) MASViewAttribute *(^attribute)(NSLayoutAttribute attr); + +- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; +- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; +- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; + +@end + +@implementation MASLayoutGuide (MASShorthandAdditions) + +MAS_ATTR_FORWARD(top); +MAS_ATTR_FORWARD(left); +MAS_ATTR_FORWARD(bottom); +MAS_ATTR_FORWARD(right); +MAS_ATTR_FORWARD(leading); +MAS_ATTR_FORWARD(trailing); +MAS_ATTR_FORWARD(width); +MAS_ATTR_FORWARD(height); +MAS_ATTR_FORWARD(centerX); +MAS_ATTR_FORWARD(centerY); + +- (MASViewAttribute *(^)(NSLayoutAttribute))attribute { + return [self mas_attribute]; +} + +- (NSArray *)makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_makeConstraints:block]; +} + +- (NSArray *)updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_updateConstraints:block]; +} + +- (NSArray *)remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_remakeConstraints:block]; +} + +@end + +#endif + +NS_ASSUME_NONNULL_END diff --git a/Masonry/MASUtilities.h b/Masonry/MASUtilities.h index 7d3f472e..393f76f8 100644 --- a/Masonry/MASUtilities.h +++ b/Masonry/MASUtilities.h @@ -136,3 +136,13 @@ static inline id _MASBoxValue(const char *type, ...) { } #define MASBoxValue(value) _MASBoxValue(@encode(__typeof__((value))), (value)) + +#define MAS_ATTR_FORWARD(attr) \ +- (MASViewAttribute *)attr { \ + return [self mas_##attr]; \ +} + +#define MAS_ATTR_FORWARD_AVAILABLE(attr, available) \ +- (MASViewAttribute *)attr available { \ + return [self mas_##attr]; \ +} diff --git a/Masonry/Masonry.h b/Masonry/Masonry.h index f37b1edb..b85dae49 100644 --- a/Masonry/Masonry.h +++ b/Masonry/Masonry.h @@ -19,6 +19,7 @@ FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; #import "View+MASShorthandAdditions.h" #import "ViewController+MASAdditions.h" #import "LayoutGuide+MASAdditions.h" +#import "LayoutGuide+MASShorthandAdditions.h" #import "NSArray+MASAdditions.h" #import "NSArray+MASShorthandAdditions.h" #import "MASConstraint.h" diff --git a/Masonry/View+MASAdditions.h b/Masonry/View+MASAdditions.h index 00477c1c..8ab2b751 100644 --- a/Masonry/View+MASAdditions.h +++ b/Masonry/View+MASAdditions.h @@ -46,17 +46,17 @@ @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerXWithinMargins; @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerYWithinMargins; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuide NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeading NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTrailing NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeft NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideRight NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTop NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideBottom NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideWidth NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideHeight NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideCenterX NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideCenterY NS_AVAILABLE_IOS(11.0); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuide API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeading API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTrailing API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideWidth API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideHeight API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideCenterX API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideCenterY API_AVAILABLE(ios(11.0)); #endif diff --git a/Masonry/View+MASAdditions.m b/Masonry/View+MASAdditions.m index 6ddc5f33..64ea80a4 100644 --- a/Masonry/View+MASAdditions.m +++ b/Masonry/View+MASAdditions.m @@ -80,8 +80,7 @@ - (MASViewAttribute *)mas_baseline { return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLastBaseline]; } -- (MASViewAttribute *(^)(NSLayoutAttribute))mas_attribute -{ +- (MASViewAttribute *(^)(NSLayoutAttribute))mas_attribute { return ^(NSLayoutAttribute attr) { return [[MASViewAttribute alloc] initWithView:self layoutAttribute:attr]; }; diff --git a/Masonry/View+MASShorthandAdditions.h b/Masonry/View+MASShorthandAdditions.h index 8e375ee3..71cdbf43 100644 --- a/Masonry/View+MASShorthandAdditions.h +++ b/Masonry/View+MASShorthandAdditions.h @@ -47,16 +47,16 @@ #if TARGET_OS_IPHONE || TARGET_OS_TV -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideLeading NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideTrailing NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideLeft NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideRight NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideTop NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideBottom NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideWidth NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideHeight NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideCenterX NS_AVAILABLE_IOS(11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideCenterY NS_AVAILABLE_IOS(11.0); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideLeading API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideTrailing API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideWidth API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideHeight API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideCenterX API_AVAILABLE(ios(11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideCenterY API_AVAILABLE(ios(11.0)); #endif @@ -66,16 +66,6 @@ @end -#define MAS_ATTR_FORWARD(attr) \ -- (MASViewAttribute *)attr { \ - return [self mas_##attr]; \ -} - -#define MAS_ATTR_FORWARD_AVAILABLE(attr, available) \ -- (MASViewAttribute *)attr available { \ - return [self mas_##attr]; \ -} - @implementation MAS_VIEW (MASShorthandAdditions) MAS_ATTR_FORWARD(top); @@ -104,16 +94,16 @@ MAS_ATTR_FORWARD(trailingMargin); MAS_ATTR_FORWARD(centerXWithinMargins); MAS_ATTR_FORWARD(centerYWithinMargins); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideLeading, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideTrailing, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideLeft, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideRight, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideTop, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideBottom, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideWidth, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideHeight, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideCenterX, NS_AVAILABLE_IOS(11.0)); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideCenterY, NS_AVAILABLE_IOS(11.0)); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideLeading, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideTrailing, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideLeft, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideRight, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideTop, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideBottom, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideWidth, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideHeight, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideCenterX, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideCenterY, API_AVAILABLE(ios(11.0))); #endif From 320cc21d31b40206f64e9833918f226d752492f2 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 09:23:29 +0800 Subject: [PATCH 11/32] =?UTF-8?q?unset=20translatesAutoresizingMaskIntoCon?= =?UTF-8?q?straints=20of=20MASLayoutGuide=E2=80=99s=20owningView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Masonry/LayoutGuide+MASAdditions.m | 3 --- 1 file changed, 3 deletions(-) diff --git a/Masonry/LayoutGuide+MASAdditions.m b/Masonry/LayoutGuide+MASAdditions.m index 9f801488..f4c82ce8 100644 --- a/Masonry/LayoutGuide+MASAdditions.m +++ b/Masonry/LayoutGuide+MASAdditions.m @@ -13,14 +13,12 @@ @implementation MASLayoutGuide (MASAdditions) - (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(id make))block { - self.owningView.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; block(constraintMaker); return [constraintMaker install]; } - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(id make))block { - self.owningView.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; constraintMaker.updateExisting = YES; block(constraintMaker); @@ -28,7 +26,6 @@ - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(id } - (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(id make))block { - self.owningView.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; constraintMaker.removeExisting = YES; block(constraintMaker); From cc7d2ebff0f0b40a0566e13ecaad5f29df029f2e Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 10:38:52 +0800 Subject: [PATCH 12/32] fix MASLayoutGuide constant with value issue --- Masonry/MASViewConstraint.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index e5b07606..ef6ea5a7 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -139,9 +139,9 @@ - (void)setSecondViewAttribute:(id)secondViewAttribute { if ([self.firstViewAttribute.item isKindOfClass:MASLayoutGuide.class]) { _secondViewAttribute = [[MASViewAttribute alloc] initWithView:self.firstViewAttribute.view layoutAttribute:self.firstViewAttribute.layoutAttribute]; - } else { - [self setLayoutConstantWithValue:secondViewAttribute]; } + + [self setLayoutConstantWithValue:secondViewAttribute]; } else if ([secondViewAttribute isKindOfClass:MAS_VIEW.class]) { _secondViewAttribute = [[MASViewAttribute alloc] initWithView:secondViewAttribute layoutAttribute:self.firstViewAttribute.layoutAttribute]; } else if ([secondViewAttribute isKindOfClass:MASViewAttribute.class]) { From 37534c46395e1f8f3c2dd61e4c7cea64fbca434d Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 11:43:50 +0800 Subject: [PATCH 13/32] =?UTF-8?q?fix=20issue:=20can=E2=80=99t=20set=20widt?= =?UTF-8?q?h=20and=20height=20for=20MASLayoutGuide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Masonry/MASViewConstraint.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index ef6ea5a7..a23d5b10 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -137,8 +137,10 @@ - (BOOL)hasBeenInstalled { - (void)setSecondViewAttribute:(id)secondViewAttribute { if ([secondViewAttribute isKindOfClass:NSValue.class]) { if ([self.firstViewAttribute.item isKindOfClass:MASLayoutGuide.class]) { - _secondViewAttribute = [[MASViewAttribute alloc] initWithView:self.firstViewAttribute.view - layoutAttribute:self.firstViewAttribute.layoutAttribute]; + if (!self.firstViewAttribute.isSizeAttribute) { + _secondViewAttribute = [[MASViewAttribute alloc] initWithView:self.firstViewAttribute.view + layoutAttribute:self.firstViewAttribute.layoutAttribute]; + } } [self setLayoutConstantWithValue:secondViewAttribute]; From 9e83016766cc8527197ad4235a7b134a210bc5d9 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 12:57:25 +0800 Subject: [PATCH 14/32] replace NS_DEPRECATED_IOS with API_DEPRECATED --- Masonry/ViewController+MASAdditions.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Masonry/ViewController+MASAdditions.h b/Masonry/ViewController+MASAdditions.h index 564654af..766fe70f 100644 --- a/Masonry/ViewController+MASAdditions.h +++ b/Masonry/ViewController+MASAdditions.h @@ -17,12 +17,12 @@ /** * following properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute */ -@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide NS_DEPRECATED_IOS(8.0, 11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide NS_DEPRECATED_IOS(8.0, 11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop NS_DEPRECATED_IOS(8.0, 11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom NS_DEPRECATED_IOS(8.0, 11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop NS_DEPRECATED_IOS(8.0, 11.0); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom NS_DEPRECATED_IOS(8.0, 11.0); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide API_DEPRECATED("Use view.mas_safeAreaLayoutGuideTop instead of mas_topLayoutGuide", ios(8.0, 11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide API_DEPRECATED("Use view.mas_safeAreaLayoutGuideBottom instead of mas_bottomLayoutGuide", ios(8.0, 11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop API_DEPRECATED("Use view.mas_top instead of mas_topLayoutGuideTop", ios(8.0, 11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom API_DEPRECATED("Use view.mas_safeAreaLayoutGuideTop instead of mas_topLayoutGuideBottom", ios(8.0, 11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop API_DEPRECATED("Use view.mas_safeAreaLayoutGuideBottom instead of mas_bottomLayoutGuideTop", ios(8.0, 11.0)); +@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom API_DEPRECATED("Use view.mas_bottom instead of mas_bottomLayoutGuideBottom", ios(8.0, 11.0)); @end From 21c1be755b69e7a76d661064c916aad451c65d87 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 17:07:51 +0800 Subject: [PATCH 15/32] improve un/install methods of MASViewConstraint --- Masonry/MASViewConstraint.m | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index a23d5b10..d2126336 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -389,8 +389,13 @@ - (void)install { existingConstraint.constant = layoutConstraint.constant; self.layoutConstraint = existingConstraint; } else { - [self.installedView addConstraint:layoutConstraint]; self.layoutConstraint = layoutConstraint; + if ([self supportsActiveProperty]) { + layoutConstraint.active = YES; + } else { + [self.installedView addConstraint:layoutConstraint]; + } + [firstLayoutItem.mas_installedConstraints addObject:self]; } } @@ -418,15 +423,13 @@ - (MASLayoutConstraint *)layoutConstraintSimilarTo:(MASLayoutConstraint *)layout - (void)uninstall { if ([self supportsActiveProperty]) { self.layoutConstraint.active = NO; - [self.firstViewAttribute.view.mas_installedConstraints removeObject:self]; - return; + } else { + [self.installedView removeConstraint:self.layoutConstraint]; } - - [self.installedView removeConstraint:self.layoutConstraint]; + + [self.firstViewAttribute.view.mas_installedConstraints removeObject:self]; self.layoutConstraint = nil; self.installedView = nil; - - [self.firstViewAttribute.view.mas_installedConstraints removeObject:self]; } @end From 598ff1d1195e6870d1bfbb05ca2f78db4d4da4a7 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 17:54:15 +0800 Subject: [PATCH 16/32] =?UTF-8?q?fix=20issue:=20MASLayoutGuide=20can?= =?UTF-8?q?=E2=80=99t=20remake=20constraints=20correctly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Masonry/MASConstraintMaker.m | 8 +++++++- Masonry/MASViewConstraint.h | 2 ++ Masonry/MASViewConstraint.m | 13 ++++++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index 4fa1c250..8ac87785 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -48,7 +48,13 @@ - (id)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide { - (NSArray *)install { if (self.removeExisting) { - NSArray *installedConstraints = [MASViewConstraint installedConstraintsForView:self.view]; + NSArray *installedConstraints; + if ([self.item isKindOfClass:MASLayoutGuide.class]) { + installedConstraints = [MASViewConstraint installedConstraintsForLayoutGuide:self.item]; + } else { + installedConstraints = [MASViewConstraint installedConstraintsForView:self.view]; + } + for (MASConstraint *constraint in installedConstraints) { [constraint uninstall]; } diff --git a/Masonry/MASViewConstraint.h b/Masonry/MASViewConstraint.h index ec390d15..b7d0ebac 100644 --- a/Masonry/MASViewConstraint.h +++ b/Masonry/MASViewConstraint.h @@ -45,4 +45,6 @@ */ + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view; ++ (NSArray *)installedConstraintsForLayoutGuide:(MASLayoutGuide *)layoutGuide API_AVAILABLE(macos(10.11), ios(9.0)); + @end diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index d2126336..591ca367 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -43,8 +43,15 @@ @interface MASLayoutGuide (MASConstraints) @implementation MASLayoutGuide (MASConstraints) +static char kInstalledConstraintsKey; + - (NSMutableSet *)mas_installedConstraints { - return self.owningView.mas_installedConstraints; + NSMutableSet *constraints = objc_getAssociatedObject(self, &kInstalledConstraintsKey); + if (!constraints) { + constraints = [NSMutableSet set]; + objc_setAssociatedObject(self, &kInstalledConstraintsKey, constraints, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + } + return constraints; } @end @@ -96,6 +103,10 @@ + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view { return [view.mas_installedConstraints allObjects]; } ++ (NSArray *)installedConstraintsForLayoutGuide:(MASLayoutGuide *)layoutGuide { + return [layoutGuide.mas_installedConstraints allObjects]; +} + #pragma mark - Private - (void)setLayoutConstant:(CGFloat)layoutConstant { From a3f8ed8cd371ce81c94de2d2e0e1a1de63f5009a Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 20:48:08 +0800 Subject: [PATCH 17/32] move MASShorthandAdditions implementation to sources --- Masonry.xcodeproj/project.pbxproj | 12 ++++ Masonry/LayoutGuide+MASShorthandAdditions.h | 31 ---------- Masonry/LayoutGuide+MASShorthandAdditions.m | 40 ++++++++++++ Masonry/NSArray+MASShorthandAdditions.h | 16 ----- Masonry/NSArray+MASShorthandAdditions.m | 25 ++++++++ Masonry/View+MASAdditions.h | 2 +- Masonry/View+MASAdditions.m | 2 +- Masonry/View+MASShorthandAdditions.h | 61 +----------------- Masonry/View+MASShorthandAdditions.m | 68 +++++++++++++++++++++ Masonry/ViewController+MASAdditions.h | 2 +- Masonry/ViewController+MASAdditions.m | 2 +- 11 files changed, 150 insertions(+), 111 deletions(-) create mode 100644 Masonry/LayoutGuide+MASShorthandAdditions.m create mode 100644 Masonry/NSArray+MASShorthandAdditions.m create mode 100644 Masonry/View+MASShorthandAdditions.m diff --git a/Masonry.xcodeproj/project.pbxproj b/Masonry.xcodeproj/project.pbxproj index 04074021..13656a7c 100644 --- a/Masonry.xcodeproj/project.pbxproj +++ b/Masonry.xcodeproj/project.pbxproj @@ -8,6 +8,9 @@ /* Begin PBXBuildFile section */ 1539A4A42665991900892F49 /* LayoutGuide+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1539A4A22665991900892F49 /* LayoutGuide+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 15CD2E49266661C000E84D15 /* NSArray+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CD2E48266661C000E84D15 /* NSArray+MASShorthandAdditions.m */; }; + 15CD2E4B2666620D00E84D15 /* LayoutGuide+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CD2E4A2666620D00E84D15 /* LayoutGuide+MASShorthandAdditions.m */; }; + 15CD2E4D2666626100E84D15 /* View+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CD2E4C2666626100E84D15 /* View+MASShorthandAdditions.m */; }; 15E414912663780600D3D1B6 /* LayoutGuide+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15E414922663780600D3D1B6 /* LayoutGuide+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */; }; 3AED05BD1AD59FD40053CC65 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AED05BC1AD59FD40053CC65 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -39,6 +42,9 @@ /* Begin PBXFileReference section */ 1539A4A22665991900892F49 /* LayoutGuide+MASShorthandAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASShorthandAdditions.h"; sourceTree = ""; }; + 15CD2E48266661C000E84D15 /* NSArray+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+MASShorthandAdditions.m"; sourceTree = ""; }; + 15CD2E4A2666620D00E84D15 /* LayoutGuide+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASShorthandAdditions.m"; sourceTree = ""; }; + 15CD2E4C2666626100E84D15 /* View+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "View+MASShorthandAdditions.m"; sourceTree = ""; }; 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASAdditions.h"; sourceTree = ""; }; 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASAdditions.m"; sourceTree = ""; }; 3AED05B71AD59FD40053CC65 /* Masonry.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -105,14 +111,17 @@ 3AED05EF1AD5A0470053CC65 /* View+MASAdditions.h */, 3AED05F01AD5A0470053CC65 /* View+MASAdditions.m */, 3AED05F11AD5A0470053CC65 /* View+MASShorthandAdditions.h */, + 15CD2E4C2666626100E84D15 /* View+MASShorthandAdditions.m */, 4473548B1B39F772004DACCB /* ViewController+MASAdditions.h */, 4473548C1B39F772004DACCB /* ViewController+MASAdditions.m */, 15E4148F2663780600D3D1B6 /* LayoutGuide+MASAdditions.h */, 15E414902663780600D3D1B6 /* LayoutGuide+MASAdditions.m */, 1539A4A22665991900892F49 /* LayoutGuide+MASShorthandAdditions.h */, + 15CD2E4A2666620D00E84D15 /* LayoutGuide+MASShorthandAdditions.m */, 3AED05EA1AD5A0470053CC65 /* NSArray+MASAdditions.h */, 3AED05EB1AD5A0470053CC65 /* NSArray+MASAdditions.m */, 3AED05EC1AD5A0470053CC65 /* NSArray+MASShorthandAdditions.h */, + 15CD2E48266661C000E84D15 /* NSArray+MASShorthandAdditions.m */, 3AED05DE1AD5A0470053CC65 /* MASConstraint.h */, 3AED05E01AD5A0470053CC65 /* MASConstraint+Private.h */, 3AED05DF1AD5A0470053CC65 /* MASConstraint.m */, @@ -238,10 +247,13 @@ files = ( 3AED06011AD5A0470053CC65 /* NSArray+MASAdditions.m in Sources */, 3AED05FD1AD5A0470053CC65 /* MASViewAttribute.m in Sources */, + 15CD2E4D2666626100E84D15 /* View+MASShorthandAdditions.m in Sources */, 4473548E1B39F772004DACCB /* ViewController+MASAdditions.m in Sources */, 15E414922663780600D3D1B6 /* LayoutGuide+MASAdditions.m in Sources */, + 15CD2E49266661C000E84D15 /* NSArray+MASShorthandAdditions.m in Sources */, 3AED05FA1AD5A0470053CC65 /* MASLayoutConstraint.m in Sources */, 3AED05F51AD5A0470053CC65 /* MASConstraint.m in Sources */, + 15CD2E4B2666620D00E84D15 /* LayoutGuide+MASShorthandAdditions.m in Sources */, 3AED05FF1AD5A0470053CC65 /* MASViewConstraint.m in Sources */, 3AED05F31AD5A0470053CC65 /* MASCompositeConstraint.m in Sources */, 3AED05F81AD5A0470053CC65 /* MASConstraintMaker.m in Sources */, diff --git a/Masonry/LayoutGuide+MASShorthandAdditions.h b/Masonry/LayoutGuide+MASShorthandAdditions.h index 31546836..ec8f250a 100644 --- a/Masonry/LayoutGuide+MASShorthandAdditions.h +++ b/Masonry/LayoutGuide+MASShorthandAdditions.h @@ -38,37 +38,6 @@ API_AVAILABLE(macos(10.11), ios(9.0)) @end -@implementation MASLayoutGuide (MASShorthandAdditions) - -MAS_ATTR_FORWARD(top); -MAS_ATTR_FORWARD(left); -MAS_ATTR_FORWARD(bottom); -MAS_ATTR_FORWARD(right); -MAS_ATTR_FORWARD(leading); -MAS_ATTR_FORWARD(trailing); -MAS_ATTR_FORWARD(width); -MAS_ATTR_FORWARD(height); -MAS_ATTR_FORWARD(centerX); -MAS_ATTR_FORWARD(centerY); - -- (MASViewAttribute *(^)(NSLayoutAttribute))attribute { - return [self mas_attribute]; -} - -- (NSArray *)makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { - return [self mas_makeConstraints:block]; -} - -- (NSArray *)updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { - return [self mas_updateConstraints:block]; -} - -- (NSArray *)remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { - return [self mas_remakeConstraints:block]; -} - -@end - #endif NS_ASSUME_NONNULL_END diff --git a/Masonry/LayoutGuide+MASShorthandAdditions.m b/Masonry/LayoutGuide+MASShorthandAdditions.m new file mode 100644 index 00000000..b4ece899 --- /dev/null +++ b/Masonry/LayoutGuide+MASShorthandAdditions.m @@ -0,0 +1,40 @@ +// +// LayoutGuide+MASShorthandAdditions.m +// Masonry +// +// Created by v on 2021/6/1. +// Copyright © 2021 Jonas Budelmann. All rights reserved. +// + +#import "LayoutGuide+MASShorthandAdditions.h" + +@implementation MASLayoutGuide (MASShorthandAdditions) + +MAS_ATTR_FORWARD(top); +MAS_ATTR_FORWARD(left); +MAS_ATTR_FORWARD(bottom); +MAS_ATTR_FORWARD(right); +MAS_ATTR_FORWARD(leading); +MAS_ATTR_FORWARD(trailing); +MAS_ATTR_FORWARD(width); +MAS_ATTR_FORWARD(height); +MAS_ATTR_FORWARD(centerX); +MAS_ATTR_FORWARD(centerY); + +- (MASViewAttribute *(^)(NSLayoutAttribute))attribute { + return [self mas_attribute]; +} + +- (NSArray *)makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_makeConstraints:block]; +} + +- (NSArray *)updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_updateConstraints:block]; +} + +- (NSArray *)remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_remakeConstraints:block]; +} + +@end diff --git a/Masonry/NSArray+MASShorthandAdditions.h b/Masonry/NSArray+MASShorthandAdditions.h index 8b473697..cd63f437 100644 --- a/Masonry/NSArray+MASShorthandAdditions.h +++ b/Masonry/NSArray+MASShorthandAdditions.h @@ -22,20 +22,4 @@ @end -@implementation NSArray (MASShorthandAdditions) - -- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { - return [self mas_makeConstraints:block]; -} - -- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { - return [self mas_updateConstraints:block]; -} - -- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { - return [self mas_remakeConstraints:block]; -} - -@end - #endif diff --git a/Masonry/NSArray+MASShorthandAdditions.m b/Masonry/NSArray+MASShorthandAdditions.m new file mode 100644 index 00000000..b777b8e7 --- /dev/null +++ b/Masonry/NSArray+MASShorthandAdditions.m @@ -0,0 +1,25 @@ +// +// NSArray+MASShorthandAdditions.m +// Masonry +// +// Created by Jonas Budelmann on 22/07/13. +// Copyright (c) 2013 Jonas Budelmann. All rights reserved. +// + +#import "NSArray+MASShorthandAdditions.h" + +@implementation NSArray (MASShorthandAdditions) + +- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { + return [self mas_makeConstraints:block]; +} + +- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { + return [self mas_updateConstraints:block]; +} + +- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { + return [self mas_remakeConstraints:block]; +} + +@end diff --git a/Masonry/View+MASAdditions.h b/Masonry/View+MASAdditions.h index 8ab2b751..6178093e 100644 --- a/Masonry/View+MASAdditions.h +++ b/Masonry/View+MASAdditions.h @@ -1,5 +1,5 @@ // -// UIView+MASAdditions.h +// View+MASAdditions.h // Masonry // // Created by Jonas Budelmann on 20/07/13. diff --git a/Masonry/View+MASAdditions.m b/Masonry/View+MASAdditions.m index 64ea80a4..e200d3e0 100644 --- a/Masonry/View+MASAdditions.m +++ b/Masonry/View+MASAdditions.m @@ -1,5 +1,5 @@ // -// UIView+MASAdditions.m +// View+MASAdditions.m // Masonry // // Created by Jonas Budelmann on 20/07/13. diff --git a/Masonry/View+MASShorthandAdditions.h b/Masonry/View+MASShorthandAdditions.h index 71cdbf43..5d143828 100644 --- a/Masonry/View+MASShorthandAdditions.h +++ b/Masonry/View+MASShorthandAdditions.h @@ -1,5 +1,5 @@ // -// UIView+MASShorthandAdditions.h +// View+MASShorthandAdditions.h // Masonry // // Created by Jonas Budelmann on 22/07/13. @@ -66,63 +66,4 @@ @end -@implementation MAS_VIEW (MASShorthandAdditions) - -MAS_ATTR_FORWARD(top); -MAS_ATTR_FORWARD(left); -MAS_ATTR_FORWARD(bottom); -MAS_ATTR_FORWARD(right); -MAS_ATTR_FORWARD(leading); -MAS_ATTR_FORWARD(trailing); -MAS_ATTR_FORWARD(width); -MAS_ATTR_FORWARD(height); -MAS_ATTR_FORWARD(centerX); -MAS_ATTR_FORWARD(centerY); -MAS_ATTR_FORWARD(baseline); - -MAS_ATTR_FORWARD(firstBaseline); -MAS_ATTR_FORWARD(lastBaseline); - -#if TARGET_OS_IPHONE || TARGET_OS_TV - -MAS_ATTR_FORWARD(leftMargin); -MAS_ATTR_FORWARD(rightMargin); -MAS_ATTR_FORWARD(topMargin); -MAS_ATTR_FORWARD(bottomMargin); -MAS_ATTR_FORWARD(leadingMargin); -MAS_ATTR_FORWARD(trailingMargin); -MAS_ATTR_FORWARD(centerXWithinMargins); -MAS_ATTR_FORWARD(centerYWithinMargins); - -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideLeading, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideTrailing, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideLeft, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideRight, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideTop, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideBottom, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideWidth, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideHeight, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideCenterX, API_AVAILABLE(ios(11.0))); -MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideCenterY, API_AVAILABLE(ios(11.0))); - -#endif - -- (MASViewAttribute *(^)(NSLayoutAttribute))attribute { - return [self mas_attribute]; -} - -- (NSArray *)makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { - return [self mas_makeConstraints:block]; -} - -- (NSArray *)updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { - return [self mas_updateConstraints:block]; -} - -- (NSArray *)remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { - return [self mas_remakeConstraints:block]; -} - -@end - #endif diff --git a/Masonry/View+MASShorthandAdditions.m b/Masonry/View+MASShorthandAdditions.m new file mode 100644 index 00000000..4b1260a7 --- /dev/null +++ b/Masonry/View+MASShorthandAdditions.m @@ -0,0 +1,68 @@ +// +// View+MASShorthandAdditions.m +// Masonry +// +// Created by Jonas Budelmann on 22/07/13. +// Copyright (c) 2013 Jonas Budelmann. All rights reserved. +// + +#import "View+MASShorthandAdditions.h" + +@implementation MAS_VIEW (MASShorthandAdditions) + +MAS_ATTR_FORWARD(top); +MAS_ATTR_FORWARD(left); +MAS_ATTR_FORWARD(bottom); +MAS_ATTR_FORWARD(right); +MAS_ATTR_FORWARD(leading); +MAS_ATTR_FORWARD(trailing); +MAS_ATTR_FORWARD(width); +MAS_ATTR_FORWARD(height); +MAS_ATTR_FORWARD(centerX); +MAS_ATTR_FORWARD(centerY); +MAS_ATTR_FORWARD(baseline); + +MAS_ATTR_FORWARD(firstBaseline); +MAS_ATTR_FORWARD(lastBaseline); + +#if TARGET_OS_IPHONE || TARGET_OS_TV + +MAS_ATTR_FORWARD(leftMargin); +MAS_ATTR_FORWARD(rightMargin); +MAS_ATTR_FORWARD(topMargin); +MAS_ATTR_FORWARD(bottomMargin); +MAS_ATTR_FORWARD(leadingMargin); +MAS_ATTR_FORWARD(trailingMargin); +MAS_ATTR_FORWARD(centerXWithinMargins); +MAS_ATTR_FORWARD(centerYWithinMargins); + +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideLeading, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideTrailing, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideLeft, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideRight, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideTop, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideBottom, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideWidth, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideHeight, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideCenterX, API_AVAILABLE(ios(11.0))); +MAS_ATTR_FORWARD_AVAILABLE(safeAreaLayoutGuideCenterY, API_AVAILABLE(ios(11.0))); + +#endif + +- (MASViewAttribute *(^)(NSLayoutAttribute))attribute { + return [self mas_attribute]; +} + +- (NSArray *)makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_makeConstraints:block]; +} + +- (NSArray *)updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_updateConstraints:block]; +} + +- (NSArray *)remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { + return [self mas_remakeConstraints:block]; +} + +@end diff --git a/Masonry/ViewController+MASAdditions.h b/Masonry/ViewController+MASAdditions.h index 766fe70f..4b44e196 100644 --- a/Masonry/ViewController+MASAdditions.h +++ b/Masonry/ViewController+MASAdditions.h @@ -1,5 +1,5 @@ // -// UIViewController+MASAdditions.h +// ViewController+MASAdditions.h // Masonry // // Created by Craig Siemens on 2015-06-23. diff --git a/Masonry/ViewController+MASAdditions.m b/Masonry/ViewController+MASAdditions.m index 9d8d378c..6ff24e09 100644 --- a/Masonry/ViewController+MASAdditions.m +++ b/Masonry/ViewController+MASAdditions.m @@ -1,5 +1,5 @@ // -// UIViewController+MASAdditions.m +// ViewController+MASAdditions.m // Masonry // // Created by Craig Siemens on 2015-06-23. From dead167a24da4f318f652a7a3805062891bbfe8f Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Tue, 1 Jun 2021 22:52:27 +0800 Subject: [PATCH 18/32] improve [MAS_VIEW mas_closestCommonSuperview:] --- Masonry/View+MASAdditions.h | 2 +- Masonry/View+MASAdditions.m | 19 +++++++------------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/Masonry/View+MASAdditions.h b/Masonry/View+MASAdditions.h index 6178093e..59529ccf 100644 --- a/Masonry/View+MASAdditions.h +++ b/Masonry/View+MASAdditions.h @@ -72,7 +72,7 @@ * * @return returns nil if common superview could not be found */ -- (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view; +- (__kindof MAS_VIEW *)mas_closestCommonSuperview:(MAS_VIEW *)view; /** * Creates a MASConstraintMaker with the callee view. diff --git a/Masonry/View+MASAdditions.m b/Masonry/View+MASAdditions.m index e200d3e0..f50814c1 100644 --- a/Masonry/View+MASAdditions.m +++ b/Masonry/View+MASAdditions.m @@ -185,20 +185,15 @@ - (void)setMas_key:(id)key { #pragma mark - heirachy -- (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view { - MAS_VIEW *closestCommonSuperview = nil; - +- (__kindof MAS_VIEW *)mas_closestCommonSuperview:(MAS_VIEW *)view { + MAS_VIEW *closestCommonSuperview = self; MAS_VIEW *secondViewSuperview = view; - while (!closestCommonSuperview && secondViewSuperview) { - MAS_VIEW *firstViewSuperview = self; - while (!closestCommonSuperview && firstViewSuperview) { - if (secondViewSuperview == firstViewSuperview) { - closestCommonSuperview = secondViewSuperview; - } - firstViewSuperview = firstViewSuperview.superview; - } - secondViewSuperview = secondViewSuperview.superview; + // O(a+b) + while (closestCommonSuperview != secondViewSuperview) { + closestCommonSuperview = !closestCommonSuperview ? view : closestCommonSuperview.superview; + secondViewSuperview = !secondViewSuperview ? self : secondViewSuperview.superview; } + return closestCommonSuperview; } From 43635cb0732a37432cb5b4eb17e45c4493f8ea17 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Thu, 3 Jun 2021 23:47:20 +0800 Subject: [PATCH 19/32] add macro NS_ASSUME_NONNULL_BEGIN/END --- Masonry/LayoutGuide+MASShorthandAdditions.h | 8 ++++---- Masonry/MASCompositeConstraint.h | 4 ++++ Masonry/MASConstraint+Private.h | 5 ++++- Masonry/MASConstraint.h | 4 ++++ Masonry/MASConstraintMaker.h | 4 ++++ Masonry/MASLayoutConstraint.h | 4 ++++ Masonry/MASViewAttribute.h | 4 ++++ Masonry/MASViewConstraint.h | 4 ++++ Masonry/NSArray+MASAdditions.h | 4 ++++ Masonry/NSArray+MASShorthandAdditions.h | 4 ++++ Masonry/NSLayoutConstraint+MASDebugAdditions.h | 4 ++++ Masonry/View+MASAdditions.h | 4 ++++ Masonry/View+MASShorthandAdditions.h | 4 ++++ Masonry/ViewController+MASAdditions.h | 4 ++++ 14 files changed, 56 insertions(+), 5 deletions(-) diff --git a/Masonry/LayoutGuide+MASShorthandAdditions.h b/Masonry/LayoutGuide+MASShorthandAdditions.h index ec8f250a..a1ca1c35 100644 --- a/Masonry/LayoutGuide+MASShorthandAdditions.h +++ b/Masonry/LayoutGuide+MASShorthandAdditions.h @@ -8,10 +8,10 @@ #import "LayoutGuide+MASAdditions.h" -NS_ASSUME_NONNULL_BEGIN - #ifdef MAS_SHORTHAND +NS_ASSUME_NONNULL_BEGIN + /** * Shorthand view additions without the 'mas_' prefixes, * only enabled if MAS_SHORTHAND is defined @@ -38,6 +38,6 @@ API_AVAILABLE(macos(10.11), ios(9.0)) @end -#endif - NS_ASSUME_NONNULL_END + +#endif diff --git a/Masonry/MASCompositeConstraint.h b/Masonry/MASCompositeConstraint.h index 934c6f16..25b9c94c 100644 --- a/Masonry/MASCompositeConstraint.h +++ b/Masonry/MASCompositeConstraint.h @@ -9,6 +9,8 @@ #import "MASConstraint.h" #import "MASUtilities.h" +NS_ASSUME_NONNULL_BEGIN + /** * A group of MASConstraint objects */ @@ -24,3 +26,5 @@ - (id)initWithChildren:(NSArray *)children; @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/MASConstraint+Private.h b/Masonry/MASConstraint+Private.h index ee0fd960..dc116381 100644 --- a/Masonry/MASConstraint+Private.h +++ b/Masonry/MASConstraint+Private.h @@ -10,6 +10,7 @@ @protocol MASConstraintDelegate; +NS_ASSUME_NONNULL_BEGIN @interface MASConstraint () @@ -61,6 +62,8 @@ */ - (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint; -- (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; +- (MASConstraint *)constraint:(MASConstraint * _Nullable)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/MASConstraint.h b/Masonry/MASConstraint.h index 6fea79ee..5d91645a 100644 --- a/Masonry/MASConstraint.h +++ b/Masonry/MASConstraint.h @@ -8,6 +8,8 @@ #import "MASUtilities.h" +NS_ASSUME_NONNULL_BEGIN + /** * Enables Constraints to be created with chainable syntax * Constraint can represent single NSLayoutConstraint (MASViewConstraint) @@ -266,3 +268,5 @@ - (MASConstraint * (^)(id offset))mas_offset; @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/MASConstraintMaker.h b/Masonry/MASConstraintMaker.h index 20e82984..d9a44f55 100644 --- a/Masonry/MASConstraintMaker.h +++ b/Masonry/MASConstraintMaker.h @@ -41,6 +41,8 @@ typedef NS_OPTIONS(NSInteger, MASAttribute) { }; +NS_ASSUME_NONNULL_BEGIN + @protocol MASLayoutConstraint @property (nonatomic, strong, readonly) MASConstraint *left; @@ -175,3 +177,5 @@ typedef NS_OPTIONS(NSInteger, MASAttribute) { - (MASConstraint * (^)(dispatch_block_t))group; @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/MASLayoutConstraint.h b/Masonry/MASLayoutConstraint.h index 699041cb..a4f0dabd 100644 --- a/Masonry/MASLayoutConstraint.h +++ b/Masonry/MASLayoutConstraint.h @@ -8,6 +8,8 @@ #import "MASUtilities.h" +NS_ASSUME_NONNULL_BEGIN + /** * When you are debugging or printing the constraints attached to a view this subclass * makes it easier to identify which constraints have been created via Masonry @@ -20,3 +22,5 @@ @property (nonatomic, strong) id mas_key; @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/MASViewAttribute.h b/Masonry/MASViewAttribute.h index 601c25d1..b998d684 100644 --- a/Masonry/MASViewAttribute.h +++ b/Masonry/MASViewAttribute.h @@ -8,6 +8,8 @@ #import "MASUtilities.h" +NS_ASSUME_NONNULL_BEGIN + /** * An immutable tuple which stores the view and the related NSLayoutAttribute. * Describes part of either the left or right hand side of a constraint equation @@ -47,3 +49,5 @@ - (BOOL)isSizeAttribute; @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/MASViewConstraint.h b/Masonry/MASViewConstraint.h index b7d0ebac..5c364579 100644 --- a/Masonry/MASViewConstraint.h +++ b/Masonry/MASViewConstraint.h @@ -11,6 +11,8 @@ #import "MASLayoutConstraint.h" #import "MASUtilities.h" +NS_ASSUME_NONNULL_BEGIN + /** * A single constraint. * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view @@ -48,3 +50,5 @@ + (NSArray *)installedConstraintsForLayoutGuide:(MASLayoutGuide *)layoutGuide API_AVAILABLE(macos(10.11), ios(9.0)); @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/NSArray+MASAdditions.h b/Masonry/NSArray+MASAdditions.h index 587618d9..2c49e120 100644 --- a/Masonry/NSArray+MASAdditions.h +++ b/Masonry/NSArray+MASAdditions.h @@ -15,6 +15,8 @@ typedef NS_ENUM(NSUInteger, MASAxisType) { MASAxisTypeVertical }; +NS_ASSUME_NONNULL_BEGIN + @interface NSArray (MASAdditions) /** @@ -70,3 +72,5 @@ typedef NS_ENUM(NSUInteger, MASAxisType) { - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing; @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/NSArray+MASShorthandAdditions.h b/Masonry/NSArray+MASShorthandAdditions.h index cd63f437..24e3f827 100644 --- a/Masonry/NSArray+MASShorthandAdditions.h +++ b/Masonry/NSArray+MASShorthandAdditions.h @@ -10,6 +10,8 @@ #ifdef MAS_SHORTHAND +NS_ASSUME_NONNULL_BEGIN + /** * Shorthand array additions without the 'mas_' prefixes, * only enabled if MAS_SHORTHAND is defined @@ -22,4 +24,6 @@ @end +NS_ASSUME_NONNULL_END + #endif diff --git a/Masonry/NSLayoutConstraint+MASDebugAdditions.h b/Masonry/NSLayoutConstraint+MASDebugAdditions.h index 1279b4fd..8b6458b2 100644 --- a/Masonry/NSLayoutConstraint+MASDebugAdditions.h +++ b/Masonry/NSLayoutConstraint+MASDebugAdditions.h @@ -8,9 +8,13 @@ #import "MASUtilities.h" +NS_ASSUME_NONNULL_BEGIN + /** * makes debug and log output of NSLayoutConstraints more readable */ @interface NSLayoutConstraint (MASDebugAdditions) @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/View+MASAdditions.h b/Masonry/View+MASAdditions.h index 59529ccf..fc3b71c0 100644 --- a/Masonry/View+MASAdditions.h +++ b/Masonry/View+MASAdditions.h @@ -10,6 +10,8 @@ #import "MASConstraintMaker.h" #import "MASViewAttribute.h" +NS_ASSUME_NONNULL_BEGIN + /** * Provides constraint maker block * and convience methods for creating MASViewAttribute which are view + NSLayoutAttribute pairs @@ -107,3 +109,5 @@ - (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block; @end + +NS_ASSUME_NONNULL_END diff --git a/Masonry/View+MASShorthandAdditions.h b/Masonry/View+MASShorthandAdditions.h index 5d143828..ed3bf3a8 100644 --- a/Masonry/View+MASShorthandAdditions.h +++ b/Masonry/View+MASShorthandAdditions.h @@ -10,6 +10,8 @@ #ifdef MAS_SHORTHAND +NS_ASSUME_NONNULL_BEGIN + /** * Shorthand view additions without the 'mas_' prefixes, * only enabled if MAS_SHORTHAND is defined @@ -66,4 +68,6 @@ @end +NS_ASSUME_NONNULL_END + #endif diff --git a/Masonry/ViewController+MASAdditions.h b/Masonry/ViewController+MASAdditions.h index 4b44e196..5a08eefa 100644 --- a/Masonry/ViewController+MASAdditions.h +++ b/Masonry/ViewController+MASAdditions.h @@ -12,6 +12,8 @@ #ifdef MAS_VIEW_CONTROLLER +NS_ASSUME_NONNULL_BEGIN + @interface MAS_VIEW_CONTROLLER (MASAdditions) /** @@ -26,4 +28,6 @@ @end +NS_ASSUME_NONNULL_END + #endif From 92e1ecd4573a3efa9f60190423bb1a063b596e14 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 00:06:53 +0800 Subject: [PATCH 20/32] remove inline flag of _MASBoxValue method --- Masonry.xcodeproj/project.pbxproj | 4 ++ Masonry/MASUtilities.h | 60 +------------------------ Masonry/MASUtilities.m | 73 +++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 59 deletions(-) create mode 100644 Masonry/MASUtilities.m diff --git a/Masonry.xcodeproj/project.pbxproj b/Masonry.xcodeproj/project.pbxproj index 13656a7c..eff0892e 100644 --- a/Masonry.xcodeproj/project.pbxproj +++ b/Masonry.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 1539A4A42665991900892F49 /* LayoutGuide+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1539A4A22665991900892F49 /* LayoutGuide+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 156873F32669345D00656904 /* MASUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F22669345D00656904 /* MASUtilities.m */; }; 15CD2E49266661C000E84D15 /* NSArray+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CD2E48266661C000E84D15 /* NSArray+MASShorthandAdditions.m */; }; 15CD2E4B2666620D00E84D15 /* LayoutGuide+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CD2E4A2666620D00E84D15 /* LayoutGuide+MASShorthandAdditions.m */; }; 15CD2E4D2666626100E84D15 /* View+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CD2E4C2666626100E84D15 /* View+MASShorthandAdditions.m */; }; @@ -42,6 +43,7 @@ /* Begin PBXFileReference section */ 1539A4A22665991900892F49 /* LayoutGuide+MASShorthandAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASShorthandAdditions.h"; sourceTree = ""; }; + 156873F22669345D00656904 /* MASUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MASUtilities.m; sourceTree = ""; }; 15CD2E48266661C000E84D15 /* NSArray+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+MASShorthandAdditions.m"; sourceTree = ""; }; 15CD2E4A2666620D00E84D15 /* LayoutGuide+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASShorthandAdditions.m"; sourceTree = ""; }; 15CD2E4C2666626100E84D15 /* View+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "View+MASShorthandAdditions.m"; sourceTree = ""; }; @@ -108,6 +110,7 @@ children = ( 3AED05BC1AD59FD40053CC65 /* Masonry.h */, 3AED05E51AD5A0470053CC65 /* MASUtilities.h */, + 156873F22669345D00656904 /* MASUtilities.m */, 3AED05EF1AD5A0470053CC65 /* View+MASAdditions.h */, 3AED05F01AD5A0470053CC65 /* View+MASAdditions.m */, 3AED05F11AD5A0470053CC65 /* View+MASShorthandAdditions.h */, @@ -259,6 +262,7 @@ 3AED05F81AD5A0470053CC65 /* MASConstraintMaker.m in Sources */, 3AED06041AD5A0470053CC65 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, 3AED06061AD5A0470053CC65 /* View+MASAdditions.m in Sources */, + 156873F32669345D00656904 /* MASUtilities.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Masonry/MASUtilities.h b/Masonry/MASUtilities.h index 393f76f8..ceed8282 100644 --- a/Masonry/MASUtilities.h +++ b/Masonry/MASUtilities.h @@ -75,65 +75,7 @@ * Given a scalar or struct value, wraps it in NSValue * Based on EXPObjectify: https://github.com/specta/expecta */ -static inline id _MASBoxValue(const char *type, ...) { - va_list v; - va_start(v, type); - id obj = nil; - if (strcmp(type, @encode(id)) == 0) { - id actual = va_arg(v, id); - obj = actual; - } else if (strcmp(type, @encode(CGPoint)) == 0) { - CGPoint actual = (CGPoint)va_arg(v, CGPoint); - obj = [NSValue value:&actual withObjCType:type]; - } else if (strcmp(type, @encode(CGSize)) == 0) { - CGSize actual = (CGSize)va_arg(v, CGSize); - obj = [NSValue value:&actual withObjCType:type]; - } else if (strcmp(type, @encode(MASEdgeInsets)) == 0) { - MASEdgeInsets actual = (MASEdgeInsets)va_arg(v, MASEdgeInsets); - obj = [NSValue value:&actual withObjCType:type]; - } else if (strcmp(type, @encode(double)) == 0) { - double actual = (double)va_arg(v, double); - obj = [NSNumber numberWithDouble:actual]; - } else if (strcmp(type, @encode(float)) == 0) { - float actual = (float)va_arg(v, double); - obj = [NSNumber numberWithFloat:actual]; - } else if (strcmp(type, @encode(int)) == 0) { - int actual = (int)va_arg(v, int); - obj = [NSNumber numberWithInt:actual]; - } else if (strcmp(type, @encode(long)) == 0) { - long actual = (long)va_arg(v, long); - obj = [NSNumber numberWithLong:actual]; - } else if (strcmp(type, @encode(long long)) == 0) { - long long actual = (long long)va_arg(v, long long); - obj = [NSNumber numberWithLongLong:actual]; - } else if (strcmp(type, @encode(short)) == 0) { - short actual = (short)va_arg(v, int); - obj = [NSNumber numberWithShort:actual]; - } else if (strcmp(type, @encode(char)) == 0) { - char actual = (char)va_arg(v, int); - obj = [NSNumber numberWithChar:actual]; - } else if (strcmp(type, @encode(bool)) == 0) { - bool actual = (bool)va_arg(v, int); - obj = [NSNumber numberWithBool:actual]; - } else if (strcmp(type, @encode(unsigned char)) == 0) { - unsigned char actual = (unsigned char)va_arg(v, unsigned int); - obj = [NSNumber numberWithUnsignedChar:actual]; - } else if (strcmp(type, @encode(unsigned int)) == 0) { - unsigned int actual = (unsigned int)va_arg(v, unsigned int); - obj = [NSNumber numberWithUnsignedInt:actual]; - } else if (strcmp(type, @encode(unsigned long)) == 0) { - unsigned long actual = (unsigned long)va_arg(v, unsigned long); - obj = [NSNumber numberWithUnsignedLong:actual]; - } else if (strcmp(type, @encode(unsigned long long)) == 0) { - unsigned long long actual = (unsigned long long)va_arg(v, unsigned long long); - obj = [NSNumber numberWithUnsignedLongLong:actual]; - } else if (strcmp(type, @encode(unsigned short)) == 0) { - unsigned short actual = (unsigned short)va_arg(v, unsigned int); - obj = [NSNumber numberWithUnsignedShort:actual]; - } - va_end(v); - return obj; -} +FOUNDATION_EXTERN id _MASBoxValue(const char *type, ...); #define MASBoxValue(value) _MASBoxValue(@encode(__typeof__((value))), (value)) diff --git a/Masonry/MASUtilities.m b/Masonry/MASUtilities.m new file mode 100644 index 00000000..1e7bdb32 --- /dev/null +++ b/Masonry/MASUtilities.m @@ -0,0 +1,73 @@ +// +// MASUtilities.m +// Masonry +// +// Created by Jonas Budelmann on 19/08/13. +// Copyright (c) 2013 Jonas Budelmann. All rights reserved. +// + +#import "MASUtilities.h" + +/** + * Given a scalar or struct value, wraps it in NSValue + * Based on EXPObjectify: https://github.com/specta/expecta + */ +FOUNDATION_EXTERN id _MASBoxValue(const char *type, ...) { + va_list v; + va_start(v, type); + id obj = nil; + if (strcmp(type, @encode(id)) == 0) { + id actual = va_arg(v, id); + obj = actual; + } else if (strcmp(type, @encode(CGPoint)) == 0) { + CGPoint actual = (CGPoint)va_arg(v, CGPoint); + obj = [NSValue value:&actual withObjCType:type]; + } else if (strcmp(type, @encode(CGSize)) == 0) { + CGSize actual = (CGSize)va_arg(v, CGSize); + obj = [NSValue value:&actual withObjCType:type]; + } else if (strcmp(type, @encode(MASEdgeInsets)) == 0) { + MASEdgeInsets actual = (MASEdgeInsets)va_arg(v, MASEdgeInsets); + obj = [NSValue value:&actual withObjCType:type]; + } else if (strcmp(type, @encode(double)) == 0) { + double actual = (double)va_arg(v, double); + obj = [NSNumber numberWithDouble:actual]; + } else if (strcmp(type, @encode(float)) == 0) { + float actual = (float)va_arg(v, double); + obj = [NSNumber numberWithFloat:actual]; + } else if (strcmp(type, @encode(int)) == 0) { + int actual = (int)va_arg(v, int); + obj = [NSNumber numberWithInt:actual]; + } else if (strcmp(type, @encode(long)) == 0) { + long actual = (long)va_arg(v, long); + obj = [NSNumber numberWithLong:actual]; + } else if (strcmp(type, @encode(long long)) == 0) { + long long actual = (long long)va_arg(v, long long); + obj = [NSNumber numberWithLongLong:actual]; + } else if (strcmp(type, @encode(short)) == 0) { + short actual = (short)va_arg(v, int); + obj = [NSNumber numberWithShort:actual]; + } else if (strcmp(type, @encode(char)) == 0) { + char actual = (char)va_arg(v, int); + obj = [NSNumber numberWithChar:actual]; + } else if (strcmp(type, @encode(bool)) == 0) { + bool actual = (bool)va_arg(v, int); + obj = [NSNumber numberWithBool:actual]; + } else if (strcmp(type, @encode(unsigned char)) == 0) { + unsigned char actual = (unsigned char)va_arg(v, unsigned int); + obj = [NSNumber numberWithUnsignedChar:actual]; + } else if (strcmp(type, @encode(unsigned int)) == 0) { + unsigned int actual = (unsigned int)va_arg(v, unsigned int); + obj = [NSNumber numberWithUnsignedInt:actual]; + } else if (strcmp(type, @encode(unsigned long)) == 0) { + unsigned long actual = (unsigned long)va_arg(v, unsigned long); + obj = [NSNumber numberWithUnsignedLong:actual]; + } else if (strcmp(type, @encode(unsigned long long)) == 0) { + unsigned long long actual = (unsigned long long)va_arg(v, unsigned long long); + obj = [NSNumber numberWithUnsignedLongLong:actual]; + } else if (strcmp(type, @encode(unsigned short)) == 0) { + unsigned short actual = (unsigned short)va_arg(v, unsigned int); + obj = [NSNumber numberWithUnsignedShort:actual]; + } + va_end(v); + return obj; +} From 41a55a2be28f109dddfd70fa8af1160977ddaf7b Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 02:08:15 +0800 Subject: [PATCH 21/32] update pod spec for travis ci --- .travis.yml | 3 +- .../xcschemes/Masonry iOS Examples.xcscheme | 12 +--- Podfile | 3 +- .../Masonry/LayoutGuide+MASAdditions.h | 1 + .../LayoutGuide+MASShorthandAdditions.h | 1 + .../Public/Masonry/LayoutGuide+MASAdditions.h | 1 + .../LayoutGuide+MASShorthandAdditions.h | 1 + Pods/Local Podspecs/Masonry.podspec.json | 14 ++-- Pods/Pods.xcodeproj/project.pbxproj | 65 ++++++++++++------- .../Masonry/Masonry-prefix.pch | 4 ++ 10 files changed, 65 insertions(+), 40 deletions(-) create mode 120000 Pods/Headers/Private/Masonry/LayoutGuide+MASAdditions.h create mode 120000 Pods/Headers/Private/Masonry/LayoutGuide+MASShorthandAdditions.h create mode 120000 Pods/Headers/Public/Masonry/LayoutGuide+MASAdditions.h create mode 120000 Pods/Headers/Public/Masonry/LayoutGuide+MASShorthandAdditions.h diff --git a/.travis.yml b/.travis.yml index 9b60a467..7e5ff1d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,9 @@ osx_image: xcode12 before_install: - curl -L https://bootstrap.pypa.io/pip/2.7/get-pip.py | sudo python - sudo pip install cpp-coveralls - - gem install xcpretty -N + - gem install cocoapods xcpretty -N - export LANG=en_US.UTF-8 + - pod install script: - set -o pipefail diff --git a/Examples/Masonry iOS Examples.xcodeproj/xcshareddata/xcschemes/Masonry iOS Examples.xcscheme b/Examples/Masonry iOS Examples.xcodeproj/xcshareddata/xcschemes/Masonry iOS Examples.xcscheme index 9dd6d243..eb94e410 100644 --- a/Examples/Masonry iOS Examples.xcodeproj/xcshareddata/xcschemes/Masonry iOS Examples.xcscheme +++ b/Examples/Masonry iOS Examples.xcodeproj/xcshareddata/xcschemes/Masonry iOS Examples.xcscheme @@ -16,7 +16,7 @@ BuildableIdentifier = "primary" BlueprintIdentifier = "3AED05B61AD59FD40053CC65" BuildableName = "Masonry.framework" - BlueprintName = "Masonry iOS" + BlueprintName = "Masonry" ReferencedContainer = "container:../Masonry.xcodeproj"> @@ -40,10 +40,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" shouldUseLaunchSchemeArgsEnv = "YES"> - - - - + + - - './' end target 'MasonryTestsLoader' do diff --git a/Pods/Headers/Private/Masonry/LayoutGuide+MASAdditions.h b/Pods/Headers/Private/Masonry/LayoutGuide+MASAdditions.h new file mode 120000 index 00000000..915d77ab --- /dev/null +++ b/Pods/Headers/Private/Masonry/LayoutGuide+MASAdditions.h @@ -0,0 +1 @@ +../../../../Masonry/LayoutGuide+MASAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Private/Masonry/LayoutGuide+MASShorthandAdditions.h b/Pods/Headers/Private/Masonry/LayoutGuide+MASShorthandAdditions.h new file mode 120000 index 00000000..ace83e5d --- /dev/null +++ b/Pods/Headers/Private/Masonry/LayoutGuide+MASShorthandAdditions.h @@ -0,0 +1 @@ +../../../../Masonry/LayoutGuide+MASShorthandAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Masonry/LayoutGuide+MASAdditions.h b/Pods/Headers/Public/Masonry/LayoutGuide+MASAdditions.h new file mode 120000 index 00000000..915d77ab --- /dev/null +++ b/Pods/Headers/Public/Masonry/LayoutGuide+MASAdditions.h @@ -0,0 +1 @@ +../../../../Masonry/LayoutGuide+MASAdditions.h \ No newline at end of file diff --git a/Pods/Headers/Public/Masonry/LayoutGuide+MASShorthandAdditions.h b/Pods/Headers/Public/Masonry/LayoutGuide+MASShorthandAdditions.h new file mode 120000 index 00000000..ace83e5d --- /dev/null +++ b/Pods/Headers/Public/Masonry/LayoutGuide+MASShorthandAdditions.h @@ -0,0 +1 @@ +../../../../Masonry/LayoutGuide+MASShorthandAdditions.h \ No newline at end of file diff --git a/Pods/Local Podspecs/Masonry.podspec.json b/Pods/Local Podspecs/Masonry.podspec.json index 760af7d5..29d9e93c 100644 --- a/Pods/Local Podspecs/Masonry.podspec.json +++ b/Pods/Local Podspecs/Masonry.podspec.json @@ -1,18 +1,18 @@ { "name": "Masonry", - "version": "1.1.0", + "version": "1.2.0", "license": "MIT", "summary": "Harness the power of Auto Layout NSLayoutConstraints with a simplified, chainable and expressive syntax.", - "homepage": "https://github.com/cloudkite/Masonry", + "homepage": "https://github.com/SnapKit/Masonry", "authors": { "Jonas Budelmann": "jonas.budelmann@gmail.com" }, "social_media_url": "http://twitter.com/cloudkite", "source": { - "git": "https://github.com/cloudkite/Masonry.git", - "tag": "v1.1.0" + "git": "https://github.com/SnapKit/Masonry.git", + "tag": "v1.2.0" }, - "description": "Masonry is a light-weight layout framework which wraps AutoLayout with a nicer syntax.\nMasonry has its own layout DSL which provides a chainable way of describing your\nNSLayoutConstraints which results in layout code which is more concise and readable.\n Masonry supports iOS and Mac OSX.", + "description": "Masonry is a light-weight layout framework which wraps AutoLayout with a nicer syntax.\nMasonry has its own layout DSL which provides a chainable way of describing your\nNSLayoutConstraints which results in layout code which is more concise and readable.\n Masonry supports iOS and Mac OSX.", "source_files": "Masonry/*.{h,m}", "ios": { "frameworks": [ @@ -33,8 +33,8 @@ ] }, "platforms": { - "ios": "6.0", - "osx": "10.7", + "ios": "9.0", + "osx": "10.11", "tvos": "9.0" }, "requires_arc": true diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index c8654693..cfe9999b 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -21,6 +21,13 @@ 11B98D7660EAD3B22A6F8DAFAC8E96F8 /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 75992ED787187D30BE4B5F69BEF5EE30 /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; 120A345233C900C50BAD6F3950FAB8FA /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 82F3CFD18ABD64DD8E88230EE43D854A /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12ADCD5E7598997A3486E62E784DB241 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 61A4675B57359AB9653085CE195438A0 /* EXPMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 156873FB2669378F00656904 /* View+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F42669378F00656904 /* View+MASShorthandAdditions.m */; }; + 156873FC2669378F00656904 /* LayoutGuide+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F52669378F00656904 /* LayoutGuide+MASAdditions.m */; }; + 156873FD2669378F00656904 /* LayoutGuide+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 156873F62669378F00656904 /* LayoutGuide+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 156873FE2669378F00656904 /* NSArray+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F72669378F00656904 /* NSArray+MASShorthandAdditions.m */; }; + 156873FF2669378F00656904 /* LayoutGuide+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 156873F82669378F00656904 /* LayoutGuide+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 156874002669378F00656904 /* MASUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F92669378F00656904 /* MASUtilities.m */; }; + 156874012669378F00656904 /* LayoutGuide+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873FA2669378F00656904 /* LayoutGuide+MASShorthandAdditions.m */; }; 19CDE56AC4388C284D9A394F64E0530C /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D20E91754698E478D6D3E468D5EC2C8 /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1AF47B7901796231A318934C2F0DDC04 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = DBCE4AE4A77A457256CB505688569B23 /* MASLayoutConstraint.m */; }; 1C74D210067A2D584AA672E61F246ECC /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = CBEA9FE72B61C2E594B205165A09ECA7 /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; @@ -38,7 +45,7 @@ 38B02E0B37B1F0225FBE396BD51461D9 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F83FB50741120EF2F5F9723A76C9099 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 391226D83570CA724B533A2C609A5EF5 /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = DD2917440B958D545CC2EE8F2240D37E /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 3AB6F716B6B591E90D2E2CB1434B55BB /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 593CB40473F1E441BC65F0044379DA72 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E2C9C19590011C8FE1F3966F4AF52D5 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 48FB054B1F997F66CA0E17DB3B26223C /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E2C9C19590011C8FE1F3966F4AF52D5 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 48FB054B1F997F66CA0E17DB3B26223C /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; 409B7E241957B5C0ADFA4DEA82CDA7AB /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 02DA3844CF514753E9CC1AE66A762D26 /* View+MASAdditions.m */; }; 42FA711D0BA099127544F7A978075C9D /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = AE58747F7ED5EE1564AC83C82F3C9DEA /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; 47E018E82EA7801C93BE8D632FBAA3EC /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD8638DC7137054523DFDCD37576559 /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -155,11 +162,18 @@ 0AAF8809A7BBA8A694825848A7EF07D2 /* EXPMatchers+beTruthy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beTruthy.h"; path = "Expecta/Matchers/EXPMatchers+beTruthy.h"; sourceTree = ""; }; 0F2DF08BADAA0D595D88E9A5F2F4AE8F /* Pods-Masonry iOS Examples-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Masonry iOS Examples-dummy.m"; sourceTree = ""; }; 10904D53FD27FC7E59BF92201687D517 /* EXPMatchers+beInTheRangeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInTheRangeOf.h"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.h"; sourceTree = ""; }; - 10A477660D2D97AEF58A6795020511A9 /* libPods-Masonry iOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Masonry iOS Tests.a"; path = "libPods-Masonry iOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 10A477660D2D97AEF58A6795020511A9 /* libPods-Masonry iOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Masonry iOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 10F0627165FE862DA384F755B45FD6A7 /* EXPMatchers+raise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raise.h"; path = "Expecta/Matchers/EXPMatchers+raise.h"; sourceTree = ""; }; 10F25824C22E66EAFBAA5C0F62629D84 /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; }; 122F547802BB911D1B9F0D52C33B568D /* EXPMatchers+beLessThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h"; sourceTree = ""; }; 13852BA59629381181212D4693F5CEC8 /* EXPMatchers+raiseWithReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raiseWithReason.h"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.h"; sourceTree = ""; }; + 156873F42669378F00656904 /* View+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "View+MASShorthandAdditions.m"; sourceTree = ""; }; + 156873F52669378F00656904 /* LayoutGuide+MASAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASAdditions.m"; sourceTree = ""; }; + 156873F62669378F00656904 /* LayoutGuide+MASShorthandAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASShorthandAdditions.h"; sourceTree = ""; }; + 156873F72669378F00656904 /* NSArray+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+MASShorthandAdditions.m"; sourceTree = ""; }; + 156873F82669378F00656904 /* LayoutGuide+MASAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASAdditions.h"; sourceTree = ""; }; + 156873F92669378F00656904 /* MASUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MASUtilities.m; sourceTree = ""; }; + 156873FA2669378F00656904 /* LayoutGuide+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASShorthandAdditions.m"; sourceTree = ""; }; 190660A7B90AD2F0323CF9185E32C8D5 /* Expecta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-prefix.pch"; sourceTree = ""; }; 194EE173246D25F2D7ED8C47FAF2ACF4 /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MASViewConstraint.h; sourceTree = ""; }; 1B998D4CCC665C40E8A45CF07DFD7ABC /* Pods-Masonry iOS Examples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Examples.release.xcconfig"; sourceTree = ""; }; @@ -174,8 +188,8 @@ 228937A58D5E1EF34C595366A42C018E /* EXPMatchers+raiseWithReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raiseWithReason.m"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.m"; sourceTree = ""; }; 2547652506D61F49D4B0882ED6B64B16 /* EXPMatchers+beFalsy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beFalsy.m"; path = "Expecta/Matchers/EXPMatchers+beFalsy.m"; sourceTree = ""; }; 2A31938A554F154B402756FCBFE7167B /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSArray+MASAdditions.m"; sourceTree = ""; }; - 2A7DB9040882B1058689C275628BAD96 /* libExpecta.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libExpecta.a; path = libExpecta.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 2B6A8C9B5A40329ADEFB0567ED8489DC /* libMasonry.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libMasonry.a; path = libMasonry.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 2A7DB9040882B1058689C275628BAD96 /* libExpecta.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libExpecta.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 2B6A8C9B5A40329ADEFB0567ED8489DC /* libMasonry.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMasonry.a; sourceTree = BUILT_PRODUCTS_DIR; }; 2B80588779A2286A5E054DE4D0DDC03A /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "View+MASShorthandAdditions.h"; sourceTree = ""; }; 2C5D45C77F469660C6D6155EA159784F /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; }; 2F3869A1E846595FC8A567E9EF91600E /* EXPMatchers+beSupersetOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSupersetOf.h"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.h"; sourceTree = ""; }; @@ -234,9 +248,9 @@ 8524B32277BDB7E1A36FB5F3EB3BAC6B /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MASCompositeConstraint.m; sourceTree = ""; }; 8780C4CC76E68DD8EA97F0E4B3287D64 /* EXPMatchers+equal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+equal.h"; path = "Expecta/Matchers/EXPMatchers+equal.h"; sourceTree = ""; }; 88907F8AEA4C9B20AEB63E2047F54502 /* EXPMatchers+match.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+match.h"; path = "Expecta/Matchers/EXPMatchers+match.h"; sourceTree = ""; }; - 8B4562385452B8EF12C3E0EFC2E07D12 /* libPods-Masonry iOS Examples.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Masonry iOS Examples.a"; path = "libPods-Masonry iOS Examples.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8B4562385452B8EF12C3E0EFC2E07D12 /* libPods-Masonry iOS Examples.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Masonry iOS Examples.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 8F3B66464C8F4DC1EDFFEA58A98F9B5C /* EXPMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcher.h; path = Expecta/EXPMatcher.h; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9616A699420336DD8F227A5C41E36432 /* EXPMatchers+respondTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+respondTo.m"; path = "Expecta/Matchers/EXPMatchers+respondTo.m"; sourceTree = ""; }; 98AFDA78C0BA149C8976CF3889419AA7 /* EXPMatchers+beSubclassOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSubclassOf.m"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.m"; sourceTree = ""; }; 9D1DE5A0855C3142FCDE4471717B4C92 /* EXPMatchers+raise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raise.m"; path = "Expecta/Matchers/EXPMatchers+raise.m"; sourceTree = ""; }; @@ -253,7 +267,7 @@ BFE37A3BBF6AEB4B7163AAE1BD655CDD /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; }; C0F0C9DE4D36C0025D1A49B0106644A4 /* NSObject+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Expecta.h"; path = "Expecta/NSObject+Expecta.h"; sourceTree = ""; }; C3EDF7B170EC221838CC2A773B0CDC59 /* EXPMatchers+beCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beCloseTo.m"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.m"; sourceTree = ""; }; - C4EC8E6D70CF2CC9E094524A6560BC80 /* libPods-MasonryTestsLoader.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-MasonryTestsLoader.a"; path = "libPods-MasonryTestsLoader.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + C4EC8E6D70CF2CC9E094524A6560BC80 /* libPods-MasonryTestsLoader.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MasonryTestsLoader.a"; sourceTree = BUILT_PRODUCTS_DIR; }; C565C77B7F3AC98E871994970653A958 /* EXPMatchers+conformTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+conformTo.m"; path = "Expecta/Matchers/EXPMatchers+conformTo.m"; sourceTree = ""; }; C5ABB1C6CB3F9F99597CCF6727731A7B /* Pods-Masonry iOS Examples.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Examples.debug.xcconfig"; sourceTree = ""; }; C7004C5DD5811F3431B3C72C3ED02D96 /* Pods-MasonryTestsLoader-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MasonryTestsLoader-frameworks.sh"; sourceTree = ""; }; @@ -474,6 +488,10 @@ CFF7DF6CE7E3205ECC5D3904C3AC169D /* Masonry */ = { isa = PBXGroup; children = ( + 156873F82669378F00656904 /* LayoutGuide+MASAdditions.h */, + 156873F52669378F00656904 /* LayoutGuide+MASAdditions.m */, + 156873F62669378F00656904 /* LayoutGuide+MASShorthandAdditions.h */, + 156873FA2669378F00656904 /* LayoutGuide+MASShorthandAdditions.m */, E66C1687519434878576CA9CA479B868 /* MASCompositeConstraint.h */, 8524B32277BDB7E1A36FB5F3EB3BAC6B /* MASCompositeConstraint.m */, 9F34293A1C0AD9FD7013D79B910FE7E5 /* MASConstraint.h */, @@ -485,6 +503,7 @@ DBCE4AE4A77A457256CB505688569B23 /* MASLayoutConstraint.m */, FC8A8F10966AF0D4BEF49EBF2CFF4C0C /* Masonry.h */, 5D2BB147FD43518883D32412C882B443 /* MASUtilities.h */, + 156873F92669378F00656904 /* MASUtilities.m */, AE58747F7ED5EE1564AC83C82F3C9DEA /* MASViewAttribute.h */, BB267133DB0AAEF96D19D2085B85E06D /* MASViewAttribute.m */, 194EE173246D25F2D7ED8C47FAF2ACF4 /* MASViewConstraint.h */, @@ -492,15 +511,16 @@ 01B7B1098F825865196B739BF9E36C04 /* NSArray+MASAdditions.h */, 2A31938A554F154B402756FCBFE7167B /* NSArray+MASAdditions.m */, 593CB40473F1E441BC65F0044379DA72 /* NSArray+MASShorthandAdditions.h */, + 156873F72669378F00656904 /* NSArray+MASShorthandAdditions.m */, 4AF06A246FC5C7C1E779C3BFB883040C /* NSLayoutConstraint+MASDebugAdditions.h */, 358E8501C72A8B4A191589A7570FCC15 /* NSLayoutConstraint+MASDebugAdditions.m */, 3683CAB8F5A6384907767DF9817A4B09 /* View+MASAdditions.h */, 02DA3844CF514753E9CC1AE66A762D26 /* View+MASAdditions.m */, 2B80588779A2286A5E054DE4D0DDC03A /* View+MASShorthandAdditions.h */, + 156873F42669378F00656904 /* View+MASShorthandAdditions.m */, 6F83FB50741120EF2F5F9723A76C9099 /* ViewController+MASAdditions.h */, 5A30D7435201DE311E06A35CEA390581 /* ViewController+MASAdditions.m */, ); - name = Masonry; path = Masonry; sourceTree = ""; }; @@ -582,7 +602,6 @@ ADBF0443B4181A4D41268AB9F62AA73C /* NSValue+Expecta.m */, C934D5D64F7FA6AE026CB137FBAD29E5 /* Support Files */, ); - name = Expecta; path = Expecta; sourceTree = ""; }; @@ -640,7 +659,6 @@ buildActionMask = 2147483647; files = ( 76A58C6131A1264FDE3DADAEA0AC83F5 /* MASCompositeConstraint.h in Headers */, - 3E2C9C19590011C8FE1F3966F4AF52D5 /* MASConstraint+Private.h in Headers */, 9F196561D7369053FA6D9FD4374E85B9 /* MASConstraint.h in Headers */, 0F7BD72B0882E4D4DD27C3B914EC3857 /* MASConstraintMaker.h in Headers */, AEEF0434A83EF5F1949252A8409F71DD /* MASLayoutConstraint.h in Headers */, @@ -652,8 +670,11 @@ 3AB6F716B6B591E90D2E2CB1434B55BB /* NSArray+MASShorthandAdditions.h in Headers */, 067B3CDE5AAD4D941172A17C9EEA5916 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */, AFD341AE846EE3D48F3832FB858FD31C /* View+MASAdditions.h in Headers */, + 156873FF2669378F00656904 /* LayoutGuide+MASAdditions.h in Headers */, + 156873FD2669378F00656904 /* LayoutGuide+MASShorthandAdditions.h in Headers */, 4F51EE6366844B6C34DD13F77D9A76CA /* View+MASShorthandAdditions.h in Headers */, 38B02E0B37B1F0225FBE396BD51461D9 /* ViewController+MASAdditions.h in Headers */, + 3E2C9C19590011C8FE1F3966F4AF52D5 /* MASConstraint+Private.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -760,6 +781,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; @@ -849,6 +871,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 156874012669378F00656904 /* LayoutGuide+MASShorthandAdditions.m in Sources */, + 156873FE2669378F00656904 /* NSArray+MASShorthandAdditions.m in Sources */, E220D02AE7833F8B9202B0304FFBB644 /* MASCompositeConstraint.m in Sources */, 2D814705CE041C701138BD9147CB21AA /* MASConstraint.m in Sources */, EBFA48D334098E6BAB801E6FB8F756C0 /* MASConstraintMaker.m in Sources */, @@ -857,9 +881,12 @@ A8A60B0CEECC7D7C9D8CA6B2DC811C64 /* MASViewAttribute.m in Sources */, 07B309A8727E5DBE05DB1F644F7B8D8A /* MASViewConstraint.m in Sources */, E846C94664199B4B993866C557EEC20D /* NSArray+MASAdditions.m in Sources */, + 156873FB2669378F00656904 /* View+MASShorthandAdditions.m in Sources */, + 156873FC2669378F00656904 /* LayoutGuide+MASAdditions.m in Sources */, 80408C0CF9D13D89E500446267DD0041 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, 409B7E241957B5C0ADFA4DEA82CDA7AB /* View+MASAdditions.m in Sources */, D2BD7E6904BDD20074AB5A8B04400EB2 /* ViewController+MASAdditions.m in Sources */, + 156874002669378F00656904 /* MASUtilities.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -914,7 +941,6 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; @@ -939,7 +965,6 @@ GCC_GENERATE_TEST_COVERAGE_FILES = YES; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACH_O_TYPE = staticlib; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; @@ -992,12 +1017,14 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; ONLY_ACTIVE_ARCH = YES; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SYMROOT = "${SRCROOT}/../build"; + TVOS_DEPLOYMENT_TARGET = 9.0; }; name = Debug; }; @@ -1037,10 +1064,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; + TVOS_DEPLOYMENT_TARGET = 9.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -1056,7 +1085,6 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; @@ -1080,7 +1108,6 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; @@ -1104,7 +1131,6 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; @@ -1127,7 +1153,6 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACH_O_TYPE = staticlib; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; @@ -1150,7 +1175,6 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACH_O_TYPE = staticlib; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; @@ -1175,7 +1199,6 @@ GCC_GENERATE_TEST_COVERAGE_FILES = YES; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACH_O_TYPE = staticlib; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; @@ -1198,7 +1221,6 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACH_O_TYPE = staticlib; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; @@ -1221,7 +1243,6 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACH_O_TYPE = staticlib; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; diff --git a/Pods/Target Support Files/Masonry/Masonry-prefix.pch b/Pods/Target Support Files/Masonry/Masonry-prefix.pch index beb2a244..f6d3e4f8 100644 --- a/Pods/Target Support Files/Masonry/Masonry-prefix.pch +++ b/Pods/Target Support Files/Masonry/Masonry-prefix.pch @@ -1,6 +1,10 @@ #ifdef __OBJC__ +#if TARGET_OS_IPHONE || TARGET_OS_TV #import #else +#import +#endif +#else #ifndef FOUNDATION_EXPORT #if defined(__cplusplus) #define FOUNDATION_EXPORT extern "C" From 468998d79d23513b7a739728f83abd093a9fdcc4 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 07:39:24 +0800 Subject: [PATCH 22/32] update updateConstraints of MASExampleUpdateView case --- .../MASExampleUpdateView.m | 22 ++++++++++--------- Masonry/MASUtilities.h | 22 ++++++++++--------- .../Masonry/Masonry-prefix.pch | 3 ++- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/Examples/Masonry iOS Examples/MASExampleUpdateView.m b/Examples/Masonry iOS Examples/MASExampleUpdateView.m index 476cc09a..261cfa8e 100644 --- a/Examples/Masonry iOS Examples/MASExampleUpdateView.m +++ b/Examples/Masonry iOS Examples/MASExampleUpdateView.m @@ -28,6 +28,13 @@ - (id)init { [self.growingButton addTarget:self action:@selector(didTapGrowButton:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:self.growingButton]; + [self.growingButton makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(self); + make.width.equalTo(@(self.buttonSize.width)).priorityLow(); + make.height.equalTo(@(self.buttonSize.height)).priorityLow(); + make.width.lessThanOrEqualTo(self); + make.height.lessThanOrEqualTo(self); + }]; self.buttonSize = CGSizeMake(100, 100); @@ -41,22 +48,17 @@ + (BOOL)requiresConstraintBasedLayout // this is Apple's recommended place for adding/updating constraints - (void)updateConstraints { - - [self.growingButton updateConstraints:^(MASConstraintMaker *make) { - make.center.equalTo(self); - make.width.equalTo(@(self.buttonSize.width)).priorityLow(); - make.height.equalTo(@(self.buttonSize.height)).priorityLow(); - make.width.lessThanOrEqualTo(self); - make.height.lessThanOrEqualTo(self); - }]; - //according to apple super should be called at end of method [super updateConstraints]; } - (void)didTapGrowButton:(UIButton *)button { self.buttonSize = CGSizeMake(self.buttonSize.width * 1.3, self.buttonSize.height * 1.3); - + [self.growingButton updateConstraints:^(MASConstraintMaker *make) { + make.width.equalTo(@(self.buttonSize.width)).priorityLow(); + make.height.equalTo(@(self.buttonSize.height)).priorityLow(); + }]; + // tell constraints they need updating [self setNeedsUpdateConstraints]; diff --git a/Masonry/MASUtilities.h b/Masonry/MASUtilities.h index ceed8282..566458c3 100644 --- a/Masonry/MASUtilities.h +++ b/Masonry/MASUtilities.h @@ -8,8 +8,6 @@ #import - - #if TARGET_OS_IPHONE || TARGET_OS_TV #import @@ -71,14 +69,6 @@ #define MAS_NSUINT_BIT (CHAR_BIT * sizeof(NSUInteger)) #define MAS_NSUINTROTATE(val, howmuch) ((((NSUInteger)val) << howmuch) | (((NSUInteger)val) >> (MAS_NSUINT_BIT - howmuch))) -/** - * Given a scalar or struct value, wraps it in NSValue - * Based on EXPObjectify: https://github.com/specta/expecta - */ -FOUNDATION_EXTERN id _MASBoxValue(const char *type, ...); - -#define MASBoxValue(value) _MASBoxValue(@encode(__typeof__((value))), (value)) - #define MAS_ATTR_FORWARD(attr) \ - (MASViewAttribute *)attr { \ return [self mas_##attr]; \ @@ -88,3 +78,15 @@ FOUNDATION_EXTERN id _MASBoxValue(const char *type, ...); - (MASViewAttribute *)attr available { \ return [self mas_##attr]; \ } + +NS_ASSUME_NONNULL_BEGIN + +/** + * Given a scalar or struct value, wraps it in NSValue + * Based on EXPObjectify: https://github.com/specta/expecta + */ +FOUNDATION_EXTERN id _Nullable _MASBoxValue(const char *type, ...); + +NS_ASSUME_NONNULL_END + +#define MASBoxValue(value) _MASBoxValue(@encode(__typeof__((value))), (value)) diff --git a/Pods/Target Support Files/Masonry/Masonry-prefix.pch b/Pods/Target Support Files/Masonry/Masonry-prefix.pch index f6d3e4f8..e5e37e2a 100644 --- a/Pods/Target Support Files/Masonry/Masonry-prefix.pch +++ b/Pods/Target Support Files/Masonry/Masonry-prefix.pch @@ -1,7 +1,8 @@ #ifdef __OBJC__ +#import #if TARGET_OS_IPHONE || TARGET_OS_TV #import -#else +#elif TARGET_OS_MAC #import #endif #else From b114a99bd3ee7e34b8814bedfe7f09f74c594674 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 10:52:00 +0800 Subject: [PATCH 23/32] support mix with swift --- Masonry/LayoutGuide+MASAdditions.h | 28 +++---- Masonry/LayoutGuide+MASAdditions.m | 8 +- Masonry/LayoutGuide+MASShorthandAdditions.h | 32 ++++---- Masonry/LayoutGuide+MASShorthandAdditions.m | 8 +- Masonry/MASCompositeConstraint.m | 4 +- Masonry/MASConstraint+Private.h | 4 +- Masonry/MASConstraint.h | 88 ++++++++++----------- Masonry/MASConstraintMaker.h | 84 ++++++++++---------- Masonry/MASConstraintMaker.m | 2 +- Masonry/MASLayoutConstraint.h | 2 +- Masonry/MASUtilities.h | 4 +- Masonry/MASUtilities.m | 2 +- Masonry/MASViewAttribute.h | 2 +- Masonry/MASViewConstraint.h | 4 +- Masonry/MASViewConstraint.m | 16 ++-- Masonry/NSArray+MASAdditions.h | 6 +- Masonry/NSArray+MASAdditions.m | 6 +- Masonry/NSArray+MASShorthandAdditions.h | 6 +- Masonry/NSArray+MASShorthandAdditions.m | 6 +- Masonry/View+MASAdditions.h | 79 +++++++++--------- Masonry/View+MASAdditions.m | 8 +- Masonry/View+MASShorthandAdditions.h | 73 ++++++++--------- Masonry/View+MASShorthandAdditions.m | 8 +- Masonry/ViewController+MASAdditions.h | 12 +-- 24 files changed, 248 insertions(+), 244 deletions(-) diff --git a/Masonry/LayoutGuide+MASAdditions.h b/Masonry/LayoutGuide+MASAdditions.h index d01c6dc9..3adcd9e6 100644 --- a/Masonry/LayoutGuide+MASAdditions.h +++ b/Masonry/LayoutGuide+MASAdditions.h @@ -15,18 +15,18 @@ NS_ASSUME_NONNULL_BEGIN API_AVAILABLE(macos(10.11), ios(9.0)) @interface MASLayoutGuide (MASAdditions) -@property (nonatomic, strong, readonly) MASViewAttribute *mas_left; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_top; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_right; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottom; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_leading; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_trailing; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_width; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_height; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerX; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerY; +@property (nonatomic, readonly) MASViewAttribute *mas_left; +@property (nonatomic, readonly) MASViewAttribute *mas_top; +@property (nonatomic, readonly) MASViewAttribute *mas_right; +@property (nonatomic, readonly) MASViewAttribute *mas_bottom; +@property (nonatomic, readonly) MASViewAttribute *mas_leading; +@property (nonatomic, readonly) MASViewAttribute *mas_trailing; +@property (nonatomic, readonly) MASViewAttribute *mas_width; +@property (nonatomic, readonly) MASViewAttribute *mas_height; +@property (nonatomic, readonly) MASViewAttribute *mas_centerX; +@property (nonatomic, readonly) MASViewAttribute *mas_centerY; -@property (nonatomic, strong, readonly) MASViewAttribute *(^mas_attribute)(NSLayoutAttribute attr); +@property (nonatomic, copy, readonly) MASViewAttribute * (^mas_attribute)(NSLayoutAttribute attr); /** * Creates a MASConstraintMaker with the callee view. @@ -36,7 +36,7 @@ API_AVAILABLE(macos(10.11), ios(9.0)) * * @return Array of created MASConstraints */ -- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(id make))block; +- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE^)(id make))block; /** * Creates a MASConstraintMaker with the callee view. @@ -47,7 +47,7 @@ API_AVAILABLE(macos(10.11), ios(9.0)) * * @return Array of created/updated MASConstraints */ -- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(id make))block; +- (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE^)(id make))block; /** * Creates a MASConstraintMaker with the callee view. @@ -58,7 +58,7 @@ API_AVAILABLE(macos(10.11), ios(9.0)) * * @return Array of created/updated MASConstraints */ -- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(id make))block; +- (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE^)(id make))block; @end diff --git a/Masonry/LayoutGuide+MASAdditions.m b/Masonry/LayoutGuide+MASAdditions.m index f4c82ce8..9ad5f537 100644 --- a/Masonry/LayoutGuide+MASAdditions.m +++ b/Masonry/LayoutGuide+MASAdditions.m @@ -12,20 +12,20 @@ @implementation MASLayoutGuide (MASAdditions) -- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(id make))block { +- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE^)(id make))block { MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; block(constraintMaker); return [constraintMaker install]; } -- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(id make))block { +- (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE^)(id make))block { MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; constraintMaker.updateExisting = YES; block(constraintMaker); return [constraintMaker install]; } -- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(id make))block { +- (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE^)(id make))block { MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithLayoutGuide:self]; constraintMaker.removeExisting = YES; block(constraintMaker); @@ -74,7 +74,7 @@ - (MASViewAttribute *)mas_centerY { return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:NSLayoutAttributeCenterY]; } -- (MASViewAttribute *(^)(NSLayoutAttribute))mas_attribute { +- (MASViewAttribute * (^)(NSLayoutAttribute))mas_attribute { return ^(NSLayoutAttribute attr) { return [[MASViewAttribute alloc] initWithView:self.owningView item:self layoutAttribute:attr]; }; diff --git a/Masonry/LayoutGuide+MASShorthandAdditions.h b/Masonry/LayoutGuide+MASShorthandAdditions.h index a1ca1c35..1ce1fdf2 100644 --- a/Masonry/LayoutGuide+MASShorthandAdditions.h +++ b/Masonry/LayoutGuide+MASShorthandAdditions.h @@ -19,22 +19,22 @@ NS_ASSUME_NONNULL_BEGIN API_AVAILABLE(macos(10.11), ios(9.0)) @interface MASLayoutGuide (MASShorthandAdditions) -@property (nonatomic, strong, readonly) MASViewAttribute *left; -@property (nonatomic, strong, readonly) MASViewAttribute *top; -@property (nonatomic, strong, readonly) MASViewAttribute *right; -@property (nonatomic, strong, readonly) MASViewAttribute *bottom; -@property (nonatomic, strong, readonly) MASViewAttribute *leading; -@property (nonatomic, strong, readonly) MASViewAttribute *trailing; -@property (nonatomic, strong, readonly) MASViewAttribute *width; -@property (nonatomic, strong, readonly) MASViewAttribute *height; -@property (nonatomic, strong, readonly) MASViewAttribute *centerX; -@property (nonatomic, strong, readonly) MASViewAttribute *centerY; - -@property (nonatomic, strong, readonly) MASViewAttribute *(^attribute)(NSLayoutAttribute attr); - -- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; -- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; -- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; +@property (nonatomic, readonly) MASViewAttribute *left; +@property (nonatomic, readonly) MASViewAttribute *top; +@property (nonatomic, readonly) MASViewAttribute *right; +@property (nonatomic, readonly) MASViewAttribute *bottom; +@property (nonatomic, readonly) MASViewAttribute *leading; +@property (nonatomic, readonly) MASViewAttribute *trailing; +@property (nonatomic, readonly) MASViewAttribute *width; +@property (nonatomic, readonly) MASViewAttribute *height; +@property (nonatomic, readonly) MASViewAttribute *centerX; +@property (nonatomic, readonly) MASViewAttribute *centerY; + +@property (nonatomic, copy, readonly) MASViewAttribute * (^attribute)(NSLayoutAttribute attr); + +- (NSArray *)makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; +- (NSArray *)updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; +- (NSArray *)remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; @end diff --git a/Masonry/LayoutGuide+MASShorthandAdditions.m b/Masonry/LayoutGuide+MASShorthandAdditions.m index b4ece899..b0fa3bd5 100644 --- a/Masonry/LayoutGuide+MASShorthandAdditions.m +++ b/Masonry/LayoutGuide+MASShorthandAdditions.m @@ -21,19 +21,19 @@ @implementation MASLayoutGuide (MASShorthandAdditions) MAS_ATTR_FORWARD(centerX); MAS_ATTR_FORWARD(centerY); -- (MASViewAttribute *(^)(NSLayoutAttribute))attribute { +- (MASViewAttribute * (^)(NSLayoutAttribute))attribute { return [self mas_attribute]; } -- (NSArray *)makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { +- (NSArray *)makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_makeConstraints:block]; } -- (NSArray *)updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { +- (NSArray *)updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_updateConstraints:block]; } -- (NSArray *)remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { +- (NSArray *)remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_remakeConstraints:block]; } diff --git a/Masonry/MASCompositeConstraint.m b/Masonry/MASCompositeConstraint.m index 2002a405..eceac34b 100644 --- a/Masonry/MASCompositeConstraint.m +++ b/Masonry/MASCompositeConstraint.m @@ -11,8 +11,8 @@ @interface MASCompositeConstraint () -@property (nonatomic, strong) id mas_key; -@property (nonatomic, strong) NSMutableArray *childConstraints; +@property (nonatomic) id mas_key; +@property (nonatomic) NSMutableArray *childConstraints; @end diff --git a/Masonry/MASConstraint+Private.h b/Masonry/MASConstraint+Private.h index dc116381..ea69b916 100644 --- a/Masonry/MASConstraint+Private.h +++ b/Masonry/MASConstraint+Private.h @@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN /** * Whether or not to check for an existing constraint instead of adding constraint */ -@property (nonatomic, assign) BOOL updateExisting; +@property (nonatomic) BOOL updateExisting; /** * Usually MASConstraintMaker but could be a parent MASConstraint @@ -44,7 +44,7 @@ NS_ASSUME_NONNULL_BEGIN * MASViewAttribute, UIView, NSValue, NSArray * see readme for more details. */ -- (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation; +@property (nonatomic, copy, readonly) MASConstraint * (^equalToWithRelation)(id, NSLayoutRelation); /** * Override to set a custom chaining behaviour diff --git a/Masonry/MASConstraint.h b/Masonry/MASConstraint.h index 5d91645a..236a5677 100644 --- a/Masonry/MASConstraint.h +++ b/Masonry/MASConstraint.h @@ -24,68 +24,68 @@ NS_ASSUME_NONNULL_BEGIN * only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following * NSLayoutAttributeTop, NSLayoutAttributeLeft, NSLayoutAttributeBottom, NSLayoutAttributeRight */ -- (MASConstraint * (^)(MASEdgeInsets insets))insets; +@property (nonatomic, copy, readonly) MASConstraint * (^insets)(MASEdgeInsets insets); /** * Modifies the NSLayoutConstraint constant, * only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following * NSLayoutAttributeTop, NSLayoutAttributeLeft, NSLayoutAttributeBottom, NSLayoutAttributeRight */ -- (MASConstraint * (^)(CGFloat inset))inset; +@property (nonatomic, copy, readonly) MASConstraint * (^inset)(CGFloat inset); /** * Modifies the NSLayoutConstraint constant, * only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following * NSLayoutAttributeWidth, NSLayoutAttributeHeight */ -- (MASConstraint * (^)(CGSize offset))sizeOffset; +@property (nonatomic, copy, readonly) MASConstraint * (^sizeOffset)(CGSize offset); /** * Modifies the NSLayoutConstraint constant, * only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following * NSLayoutAttributeCenterX, NSLayoutAttributeCenterY */ -- (MASConstraint * (^)(CGPoint offset))centerOffset; +@property (nonatomic, copy, readonly) MASConstraint * (^centerOffset)(CGPoint offset); /** * Modifies the NSLayoutConstraint constant */ -- (MASConstraint * (^)(CGFloat offset))offset; +@property (nonatomic, copy, readonly) MASConstraint * (^offset)(CGFloat offset); /** * Modifies the NSLayoutConstraint constant based on a value type */ -- (MASConstraint * (^)(NSValue *value))valueOffset; +@property (nonatomic, copy, readonly) MASConstraint * (^valueOffset)(NSValue *value); /** * Sets the NSLayoutConstraint multiplier property */ -- (MASConstraint * (^)(CGFloat multiplier))multipliedBy; +@property (nonatomic, copy, readonly) MASConstraint * (^multipliedBy)(CGFloat multiplier); /** * Sets the NSLayoutConstraint multiplier to 1.0/dividedBy */ -- (MASConstraint * (^)(CGFloat divider))dividedBy; +@property (nonatomic, copy, readonly) MASConstraint * (^dividedBy)(CGFloat divider); /** * Sets the NSLayoutConstraint priority to a float or MASLayoutPriority */ -- (MASConstraint * (^)(MASLayoutPriority priority))priority; +@property (nonatomic, copy, readonly) MASConstraint * (^priority)(MASLayoutPriority priority); /** * Sets the NSLayoutConstraint priority to MASLayoutPriorityLow */ -- (MASConstraint * (^)(void))priorityLow; +@property (nonatomic, copy, readonly) MASConstraint * (^priorityLow)(void); /** * Sets the NSLayoutConstraint priority to MASLayoutPriorityMedium */ -- (MASConstraint * (^)(void))priorityMedium; +@property (nonatomic, copy, readonly) MASConstraint * (^priorityMedium)(void); /** * Sets the NSLayoutConstraint priority to MASLayoutPriorityHigh */ -- (MASConstraint * (^)(void))priorityHigh; +@property (nonatomic, copy, readonly) MASConstraint * (^priorityHigh)(void); /** * Sets the constraint relation to NSLayoutRelationEqual @@ -93,7 +93,7 @@ NS_ASSUME_NONNULL_BEGIN * MASViewAttribute, UIView, NSValue, NSArray * see readme for more details. */ -- (MASConstraint * (^)(id attr))equalTo; +@property (nonatomic, copy, readonly) MASConstraint * (^equalTo)(id attr); /** * Sets the constraint relation to NSLayoutRelationGreaterThanOrEqual @@ -101,7 +101,7 @@ NS_ASSUME_NONNULL_BEGIN * MASViewAttribute, UIView, NSValue, NSArray * see readme for more details. */ -- (MASConstraint * (^)(id attr))greaterThanOrEqualTo; +@property (nonatomic, copy, readonly) MASConstraint * (^greaterThanOrEqualTo)(id attr); /** * Sets the constraint relation to NSLayoutRelationLessThanOrEqual @@ -109,46 +109,46 @@ NS_ASSUME_NONNULL_BEGIN * MASViewAttribute, UIView, NSValue, NSArray * see readme for more details. */ -- (MASConstraint * (^)(id attr))lessThanOrEqualTo; +@property (nonatomic, copy, readonly) MASConstraint * (^lessThanOrEqualTo)(id attr); /** * Optional semantic property which has no effect but improves the readability of constraint */ -- (MASConstraint *)with; +@property (nonatomic, readonly) MASConstraint *with; /** * Optional semantic property which has no effect but improves the readability of constraint */ -- (MASConstraint *)and; +@property (nonatomic, readonly) MASConstraint *and; /** * Creates a new MASCompositeConstraint with the called attribute and reciever */ -- (MASConstraint *)left; -- (MASConstraint *)top; -- (MASConstraint *)right; -- (MASConstraint *)bottom; -- (MASConstraint *)leading; -- (MASConstraint *)trailing; -- (MASConstraint *)width; -- (MASConstraint *)height; -- (MASConstraint *)centerX; -- (MASConstraint *)centerY; -- (MASConstraint *)baseline; - -- (MASConstraint *)firstBaseline; -- (MASConstraint *)lastBaseline; +@property (nonatomic, readonly) MASConstraint *left; +@property (nonatomic, readonly) MASConstraint *top; +@property (nonatomic, readonly) MASConstraint *right; +@property (nonatomic, readonly) MASConstraint *bottom; +@property (nonatomic, readonly) MASConstraint *leading; +@property (nonatomic, readonly) MASConstraint *trailing; +@property (nonatomic, readonly) MASConstraint *width; +@property (nonatomic, readonly) MASConstraint *height; +@property (nonatomic, readonly) MASConstraint *centerX; +@property (nonatomic, readonly) MASConstraint *centerY; +@property (nonatomic, readonly) MASConstraint *baseline; + +@property (nonatomic, readonly) MASConstraint *firstBaseline; +@property (nonatomic, readonly) MASConstraint *lastBaseline; #if TARGET_OS_IPHONE || TARGET_OS_TV -- (MASConstraint *)leftMargin; -- (MASConstraint *)rightMargin; -- (MASConstraint *)topMargin; -- (MASConstraint *)bottomMargin; -- (MASConstraint *)leadingMargin; -- (MASConstraint *)trailingMargin; -- (MASConstraint *)centerXWithinMargins; -- (MASConstraint *)centerYWithinMargins; +@property (nonatomic, readonly) MASConstraint *leftMargin; +@property (nonatomic, readonly) MASConstraint *rightMargin; +@property (nonatomic, readonly) MASConstraint *topMargin; +@property (nonatomic, readonly) MASConstraint *bottomMargin; +@property (nonatomic, readonly) MASConstraint *leadingMargin; +@property (nonatomic, readonly) MASConstraint *trailingMargin; +@property (nonatomic, readonly) MASConstraint *centerXWithinMargins; +@property (nonatomic, readonly) MASConstraint *centerYWithinMargins; #endif @@ -156,7 +156,7 @@ NS_ASSUME_NONNULL_BEGIN /** * Sets the constraint debug name */ -- (MASConstraint * (^)(id key))key; +@property (nonatomic, copy, readonly) MASConstraint * (^key)(id key); // NSLayoutConstraint constant Setters // for use outside of mas_updateConstraints/mas_makeConstraints blocks @@ -258,14 +258,14 @@ NS_ASSUME_NONNULL_BEGIN * Aliases to corresponding relation methods (for shorthand macros) * Also needed to aid autocompletion */ -- (MASConstraint * (^)(id attr))mas_equalTo; -- (MASConstraint * (^)(id attr))mas_greaterThanOrEqualTo; -- (MASConstraint * (^)(id attr))mas_lessThanOrEqualTo; +@property (nonatomic, copy, readonly) MASConstraint * (^mas_equalTo)(id attr); +@property (nonatomic, copy, readonly) MASConstraint * (^mas_greaterThanOrEqualTo)(id attr); +@property (nonatomic, copy, readonly) MASConstraint * (^mas_lessThanOrEqualTo)(id attr); /** * A dummy method to aid autocompletion */ -- (MASConstraint * (^)(id offset))mas_offset; +@property (nonatomic, copy, readonly) MASConstraint * (^mas_offset)(id offset); @end diff --git a/Masonry/MASConstraintMaker.h b/Masonry/MASConstraintMaker.h index d9a44f55..92aefe19 100644 --- a/Masonry/MASConstraintMaker.h +++ b/Masonry/MASConstraintMaker.h @@ -45,37 +45,37 @@ NS_ASSUME_NONNULL_BEGIN @protocol MASLayoutConstraint -@property (nonatomic, strong, readonly) MASConstraint *left; -@property (nonatomic, strong, readonly) MASConstraint *top; -@property (nonatomic, strong, readonly) MASConstraint *right; -@property (nonatomic, strong, readonly) MASConstraint *bottom; -@property (nonatomic, strong, readonly) MASConstraint *leading; -@property (nonatomic, strong, readonly) MASConstraint *trailing; -@property (nonatomic, strong, readonly) MASConstraint *width; -@property (nonatomic, strong, readonly) MASConstraint *height; -@property (nonatomic, strong, readonly) MASConstraint *centerX; -@property (nonatomic, strong, readonly) MASConstraint *centerY; +@property (nonatomic, readonly) MASConstraint *left; +@property (nonatomic, readonly) MASConstraint *top; +@property (nonatomic, readonly) MASConstraint *right; +@property (nonatomic, readonly) MASConstraint *bottom; +@property (nonatomic, readonly) MASConstraint *leading; +@property (nonatomic, readonly) MASConstraint *trailing; +@property (nonatomic, readonly) MASConstraint *width; +@property (nonatomic, readonly) MASConstraint *height; +@property (nonatomic, readonly) MASConstraint *centerX; +@property (nonatomic, readonly) MASConstraint *centerY; /** * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeEdges * which generates the appropriate MASViewConstraint children (top, left, bottom, right) * with the first item set to the makers associated view */ -@property (nonatomic, strong, readonly) MASConstraint *edges; +@property (nonatomic, readonly) MASConstraint *edges; /** * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeSize * which generates the appropriate MASViewConstraint children (width, height) * with the first item set to the makers associated view */ -@property (nonatomic, strong, readonly) MASConstraint *size; +@property (nonatomic, readonly) MASConstraint *size; /** * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeCenter * which generates the appropriate MASViewConstraint children (centerX, centerY) * with the first item set to the makers associated view */ -@property (nonatomic, strong, readonly) MASConstraint *center; +@property (nonatomic, readonly) MASConstraint *center; @end @@ -90,31 +90,31 @@ NS_ASSUME_NONNULL_BEGIN * The following properties return a new MASViewConstraint * with the first item set to the makers associated view and the appropriate MASViewAttribute */ -@property (nonatomic, strong, readonly) MASConstraint *left; -@property (nonatomic, strong, readonly) MASConstraint *top; -@property (nonatomic, strong, readonly) MASConstraint *right; -@property (nonatomic, strong, readonly) MASConstraint *bottom; -@property (nonatomic, strong, readonly) MASConstraint *leading; -@property (nonatomic, strong, readonly) MASConstraint *trailing; -@property (nonatomic, strong, readonly) MASConstraint *width; -@property (nonatomic, strong, readonly) MASConstraint *height; -@property (nonatomic, strong, readonly) MASConstraint *centerX; -@property (nonatomic, strong, readonly) MASConstraint *centerY; -@property (nonatomic, strong, readonly) MASConstraint *baseline; - -@property (nonatomic, strong, readonly) MASConstraint *firstBaseline; -@property (nonatomic, strong, readonly) MASConstraint *lastBaseline; +@property (nonatomic, readonly) MASConstraint *left; +@property (nonatomic, readonly) MASConstraint *top; +@property (nonatomic, readonly) MASConstraint *right; +@property (nonatomic, readonly) MASConstraint *bottom; +@property (nonatomic, readonly) MASConstraint *leading; +@property (nonatomic, readonly) MASConstraint *trailing; +@property (nonatomic, readonly) MASConstraint *width; +@property (nonatomic, readonly) MASConstraint *height; +@property (nonatomic, readonly) MASConstraint *centerX; +@property (nonatomic, readonly) MASConstraint *centerY; +@property (nonatomic, readonly) MASConstraint *baseline; + +@property (nonatomic, readonly) MASConstraint *firstBaseline; +@property (nonatomic, readonly) MASConstraint *lastBaseline; #if TARGET_OS_IPHONE || TARGET_OS_TV -@property (nonatomic, strong, readonly) MASConstraint *leftMargin; -@property (nonatomic, strong, readonly) MASConstraint *rightMargin; -@property (nonatomic, strong, readonly) MASConstraint *topMargin; -@property (nonatomic, strong, readonly) MASConstraint *bottomMargin; -@property (nonatomic, strong, readonly) MASConstraint *leadingMargin; -@property (nonatomic, strong, readonly) MASConstraint *trailingMargin; -@property (nonatomic, strong, readonly) MASConstraint *centerXWithinMargins; -@property (nonatomic, strong, readonly) MASConstraint *centerYWithinMargins; +@property (nonatomic, readonly) MASConstraint *leftMargin; +@property (nonatomic, readonly) MASConstraint *rightMargin; +@property (nonatomic, readonly) MASConstraint *topMargin; +@property (nonatomic, readonly) MASConstraint *bottomMargin; +@property (nonatomic, readonly) MASConstraint *leadingMargin; +@property (nonatomic, readonly) MASConstraint *trailingMargin; +@property (nonatomic, readonly) MASConstraint *centerXWithinMargins; +@property (nonatomic, readonly) MASConstraint *centerYWithinMargins; #endif @@ -123,38 +123,38 @@ NS_ASSUME_NONNULL_BEGIN * to the makers associated view and children corresponding to the set bits in the * MASAttribute parameter. Combine multiple attributes via binary-or. */ -@property (nonatomic, strong, readonly) MASConstraint *(^attributes)(MASAttribute attrs); +@property (nonatomic, readonly) MASConstraint * (^attributes)(MASAttribute attrs); /** * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeEdges * which generates the appropriate MASViewConstraint children (top, left, bottom, right) * with the first item set to the makers associated view */ -@property (nonatomic, strong, readonly) MASConstraint *edges; +@property (nonatomic, readonly) MASConstraint *edges; /** * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeSize * which generates the appropriate MASViewConstraint children (width, height) * with the first item set to the makers associated view */ -@property (nonatomic, strong, readonly) MASConstraint *size; +@property (nonatomic, readonly) MASConstraint *size; /** * Creates a MASCompositeConstraint with type MASCompositeConstraintTypeCenter * which generates the appropriate MASViewConstraint children (centerX, centerY) * with the first item set to the makers associated view */ -@property (nonatomic, strong, readonly) MASConstraint *center; +@property (nonatomic, readonly) MASConstraint *center; /** * Whether or not to check for an existing constraint instead of adding constraint */ -@property (nonatomic, assign) BOOL updateExisting; +@property (nonatomic) BOOL updateExisting; /** * Whether or not to remove existing constraints prior to installing */ -@property (nonatomic, assign) BOOL removeExisting; +@property (nonatomic) BOOL removeExisting; /** * initialises the maker with a default view @@ -174,7 +174,7 @@ NS_ASSUME_NONNULL_BEGIN */ - (NSArray *)install; -- (MASConstraint * (^)(dispatch_block_t))group; +@property (nonatomic, copy, readonly) MASConstraint * (^group)(dispatch_block_t); @end diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index 8ac87785..d47abdab 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -18,7 +18,7 @@ @interface MASConstraintMaker () @property (nonatomic, weak) MAS_VIEW *view; @property (nullable, nonatomic, weak) MASLayoutGuide *item; -@property (nonatomic, strong) NSMutableArray *constraints; +@property (nonatomic) NSMutableArray *constraints; @end diff --git a/Masonry/MASLayoutConstraint.h b/Masonry/MASLayoutConstraint.h index a4f0dabd..88ffd3ad 100644 --- a/Masonry/MASLayoutConstraint.h +++ b/Masonry/MASLayoutConstraint.h @@ -19,7 +19,7 @@ NS_ASSUME_NONNULL_BEGIN /** * a key to associate with this constraint */ -@property (nonatomic, strong) id mas_key; +@property (nonatomic) id mas_key; @end diff --git a/Masonry/MASUtilities.h b/Masonry/MASUtilities.h index 566458c3..46b19498 100644 --- a/Masonry/MASUtilities.h +++ b/Masonry/MASUtilities.h @@ -69,6 +69,8 @@ #define MAS_NSUINT_BIT (CHAR_BIT * sizeof(NSUInteger)) #define MAS_NSUINTROTATE(val, howmuch) ((((NSUInteger)val) << howmuch) | (((NSUInteger)val) >> (MAS_NSUINT_BIT - howmuch))) +#define MAS_DISCARDABLE_RESULT __attribute__((warn_unused_result)) + #define MAS_ATTR_FORWARD(attr) \ - (MASViewAttribute *)attr { \ return [self mas_##attr]; \ @@ -85,7 +87,7 @@ NS_ASSUME_NONNULL_BEGIN * Given a scalar or struct value, wraps it in NSValue * Based on EXPObjectify: https://github.com/specta/expecta */ -FOUNDATION_EXTERN id _Nullable _MASBoxValue(const char *type, ...); +FOUNDATION_EXPORT id _Nullable _MASBoxValue(const char *type, ...); NS_ASSUME_NONNULL_END diff --git a/Masonry/MASUtilities.m b/Masonry/MASUtilities.m index 1e7bdb32..8a06312b 100644 --- a/Masonry/MASUtilities.m +++ b/Masonry/MASUtilities.m @@ -12,7 +12,7 @@ * Given a scalar or struct value, wraps it in NSValue * Based on EXPObjectify: https://github.com/specta/expecta */ -FOUNDATION_EXTERN id _MASBoxValue(const char *type, ...) { +FOUNDATION_EXPORT id _MASBoxValue(const char *type, ...) { va_list v; va_start(v, type); id obj = nil; diff --git a/Masonry/MASViewAttribute.h b/Masonry/MASViewAttribute.h index b998d684..dd8501eb 100644 --- a/Masonry/MASViewAttribute.h +++ b/Masonry/MASViewAttribute.h @@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN /** * The attribute which the reciever relates to */ -@property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute; +@property (nonatomic, readonly) NSLayoutAttribute layoutAttribute; /** * Convenience initializer. diff --git a/Masonry/MASViewConstraint.h b/Masonry/MASViewConstraint.h index 5c364579..0b4178d7 100644 --- a/Masonry/MASViewConstraint.h +++ b/Masonry/MASViewConstraint.h @@ -22,12 +22,12 @@ NS_ASSUME_NONNULL_BEGIN /** * First item/view and first attribute of the NSLayoutConstraint */ -@property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute; +@property (nonatomic, readonly) MASViewAttribute *firstViewAttribute; /** * Second item/view and second attribute of the NSLayoutConstraint */ -@property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute; +@property (nonatomic, readonly) MASViewAttribute *secondViewAttribute; /** * initialises the MASViewConstraint with the first part of the equation diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index 591ca367..633469b7 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -59,16 +59,16 @@ - (NSMutableSet *)mas_installedConstraints { @interface MASViewConstraint () -@property (nonatomic, strong, readwrite) MASViewAttribute *secondViewAttribute; +@property (nonatomic, readwrite) MASViewAttribute *secondViewAttribute; @property (nonatomic, weak) MAS_VIEW *installedView; @property (nonatomic, weak) MASLayoutConstraint *layoutConstraint; -@property (nonatomic, assign) NSLayoutRelation layoutRelation; -@property (nonatomic, assign) MASLayoutPriority layoutPriority; -@property (nonatomic, assign) CGFloat layoutMultiplier; -@property (nonatomic, assign) CGFloat layoutConstant; -@property (nonatomic, assign) BOOL hasLayoutRelation; -@property (nonatomic, strong) id mas_key; -@property (nonatomic, assign) BOOL useAnimator; +@property (nonatomic) NSLayoutRelation layoutRelation; +@property (nonatomic) MASLayoutPriority layoutPriority; +@property (nonatomic) CGFloat layoutMultiplier; +@property (nonatomic) CGFloat layoutConstant; +@property (nonatomic) BOOL hasLayoutRelation; +@property (nonatomic) id mas_key; +@property (nonatomic) BOOL useAnimator; @end diff --git a/Masonry/NSArray+MASAdditions.h b/Masonry/NSArray+MASAdditions.h index 2c49e120..bdb21da8 100644 --- a/Masonry/NSArray+MASAdditions.h +++ b/Masonry/NSArray+MASAdditions.h @@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return Array of created MASConstraints */ -- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE ^)(MASConstraintMaker *make))block; +- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; /** * Creates a MASConstraintMaker with each view in the callee. @@ -38,7 +38,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return Array of created/updated MASConstraints */ -- (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE ^)(MASConstraintMaker *make))block; +- (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; /** * Creates a MASConstraintMaker with each view in the callee. @@ -49,7 +49,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return Array of created/updated MASConstraints */ -- (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE ^)(MASConstraintMaker *make))block; +- (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; /** * distribute with fixed spacing diff --git a/Masonry/NSArray+MASAdditions.m b/Masonry/NSArray+MASAdditions.m index f31390ae..269a33a6 100644 --- a/Masonry/NSArray+MASAdditions.m +++ b/Masonry/NSArray+MASAdditions.m @@ -11,7 +11,7 @@ @implementation NSArray (MASAdditions) -- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block { +- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block { NSMutableArray *constraints = [NSMutableArray array]; for (MAS_VIEW *view in self) { NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views"); @@ -20,7 +20,7 @@ - (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make)) return constraints; } -- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block { +- (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block { NSMutableArray *constraints = [NSMutableArray array]; for (MAS_VIEW *view in self) { NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views"); @@ -29,7 +29,7 @@ - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make return constraints; } -- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block { +- (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block { NSMutableArray *constraints = [NSMutableArray array]; for (MAS_VIEW *view in self) { NSAssert([view isKindOfClass:[MAS_VIEW class]], @"All objects in the array must be views"); diff --git a/Masonry/NSArray+MASShorthandAdditions.h b/Masonry/NSArray+MASShorthandAdditions.h index 24e3f827..7aaeb18b 100644 --- a/Masonry/NSArray+MASShorthandAdditions.h +++ b/Masonry/NSArray+MASShorthandAdditions.h @@ -18,9 +18,9 @@ NS_ASSUME_NONNULL_BEGIN */ @interface NSArray (MASShorthandAdditions) -- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; -- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; -- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; +- (NSArray *)makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; +- (NSArray *)updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; +- (NSArray *)remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; @end diff --git a/Masonry/NSArray+MASShorthandAdditions.m b/Masonry/NSArray+MASShorthandAdditions.m index b777b8e7..245c5720 100644 --- a/Masonry/NSArray+MASShorthandAdditions.m +++ b/Masonry/NSArray+MASShorthandAdditions.m @@ -10,15 +10,15 @@ @implementation NSArray (MASShorthandAdditions) -- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { +- (NSArray *)makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_makeConstraints:block]; } -- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { +- (NSArray *)updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_updateConstraints:block]; } -- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { +- (NSArray *)remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_remakeConstraints:block]; } diff --git a/Masonry/View+MASAdditions.h b/Masonry/View+MASAdditions.h index fc3b71c0..c27ab15b 100644 --- a/Masonry/View+MASAdditions.h +++ b/Masonry/View+MASAdditions.h @@ -21,51 +21,52 @@ NS_ASSUME_NONNULL_BEGIN /** * following properties return a new MASViewAttribute with current view and appropriate NSLayoutAttribute */ -@property (nonatomic, strong, readonly) MASViewAttribute *mas_left; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_top; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_right; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottom; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_leading; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_trailing; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_width; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_height; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerX; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerY; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_baseline; -@property (nonatomic, strong, readonly) MASViewAttribute *(^mas_attribute)(NSLayoutAttribute attr); - -@property (nonatomic, strong, readonly) MASViewAttribute *mas_firstBaseline; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_lastBaseline; +@property (nonatomic, readonly) MASViewAttribute *mas_left; +@property (nonatomic, readonly) MASViewAttribute *mas_top; +@property (nonatomic, readonly) MASViewAttribute *mas_right; +@property (nonatomic, readonly) MASViewAttribute *mas_bottom; +@property (nonatomic, readonly) MASViewAttribute *mas_leading; +@property (nonatomic, readonly) MASViewAttribute *mas_trailing; +@property (nonatomic, readonly) MASViewAttribute *mas_width; +@property (nonatomic, readonly) MASViewAttribute *mas_height; +@property (nonatomic, readonly) MASViewAttribute *mas_centerX; +@property (nonatomic, readonly) MASViewAttribute *mas_centerY; +@property (nonatomic, readonly) MASViewAttribute *mas_baseline; + +@property (nonatomic, copy, readonly) MASViewAttribute * (^mas_attribute)(NSLayoutAttribute attr); + +@property (nonatomic, readonly) MASViewAttribute *mas_firstBaseline; +@property (nonatomic, readonly) MASViewAttribute *mas_lastBaseline; #if TARGET_OS_IPHONE || TARGET_OS_TV -@property (nonatomic, strong, readonly) MASViewAttribute *mas_leftMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_rightMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_topMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_leadingMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_trailingMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerXWithinMargins; -@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerYWithinMargins; - -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuide API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeading API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTrailing API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideWidth API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideHeight API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideCenterX API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideCenterY API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_leftMargin; +@property (nonatomic, readonly) MASViewAttribute *mas_rightMargin; +@property (nonatomic, readonly) MASViewAttribute *mas_topMargin; +@property (nonatomic, readonly) MASViewAttribute *mas_bottomMargin; +@property (nonatomic, readonly) MASViewAttribute *mas_leadingMargin; +@property (nonatomic, readonly) MASViewAttribute *mas_trailingMargin; +@property (nonatomic, readonly) MASViewAttribute *mas_centerXWithinMargins; +@property (nonatomic, readonly) MASViewAttribute *mas_centerYWithinMargins; + +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuide API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeading API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTrailing API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideWidth API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideHeight API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideCenterX API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_safeAreaLayoutGuideCenterY API_AVAILABLE(ios(11.0)); #endif /** * a key to associate with this view */ -@property (nonatomic, strong) id mas_key; +@property (nonatomic) id mas_key; /** * Finds the closest common superview between this view and another view @@ -84,7 +85,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return Array of created MASConstraints */ -- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block; +- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; /** * Creates a MASConstraintMaker with the callee view. @@ -95,7 +96,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return Array of created/updated MASConstraints */ -- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block; +- (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; /** * Creates a MASConstraintMaker with the callee view. @@ -106,7 +107,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return Array of created/updated MASConstraints */ -- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block; +- (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; @end diff --git a/Masonry/View+MASAdditions.m b/Masonry/View+MASAdditions.m index f50814c1..218f2835 100644 --- a/Masonry/View+MASAdditions.m +++ b/Masonry/View+MASAdditions.m @@ -11,14 +11,14 @@ @implementation MAS_VIEW (MASAdditions) -- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { +- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { self.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self]; block(constraintMaker); return [constraintMaker install]; } -- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { +- (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { self.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self]; constraintMaker.updateExisting = YES; @@ -26,7 +26,7 @@ - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))bl return [constraintMaker install]; } -- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block { +- (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block { self.translatesAutoresizingMaskIntoConstraints = NO; MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self]; constraintMaker.removeExisting = YES; @@ -80,7 +80,7 @@ - (MASViewAttribute *)mas_baseline { return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLastBaseline]; } -- (MASViewAttribute *(^)(NSLayoutAttribute))mas_attribute { +- (MASViewAttribute * (^)(NSLayoutAttribute))mas_attribute { return ^(NSLayoutAttribute attr) { return [[MASViewAttribute alloc] initWithView:self layoutAttribute:attr]; }; diff --git a/Masonry/View+MASShorthandAdditions.h b/Masonry/View+MASShorthandAdditions.h index ed3bf3a8..ad9142d5 100644 --- a/Masonry/View+MASShorthandAdditions.h +++ b/Masonry/View+MASShorthandAdditions.h @@ -18,53 +18,54 @@ NS_ASSUME_NONNULL_BEGIN */ @interface MAS_VIEW (MASShorthandAdditions) -@property (nonatomic, strong, readonly) MASViewAttribute *left; -@property (nonatomic, strong, readonly) MASViewAttribute *top; -@property (nonatomic, strong, readonly) MASViewAttribute *right; -@property (nonatomic, strong, readonly) MASViewAttribute *bottom; -@property (nonatomic, strong, readonly) MASViewAttribute *leading; -@property (nonatomic, strong, readonly) MASViewAttribute *trailing; -@property (nonatomic, strong, readonly) MASViewAttribute *width; -@property (nonatomic, strong, readonly) MASViewAttribute *height; -@property (nonatomic, strong, readonly) MASViewAttribute *centerX; -@property (nonatomic, strong, readonly) MASViewAttribute *centerY; -@property (nonatomic, strong, readonly) MASViewAttribute *baseline; -@property (nonatomic, strong, readonly) MASViewAttribute *(^attribute)(NSLayoutAttribute attr); - -@property (nonatomic, strong, readonly) MASViewAttribute *firstBaseline; -@property (nonatomic, strong, readonly) MASViewAttribute *lastBaseline; +@property (nonatomic, readonly) MASViewAttribute *left; +@property (nonatomic, readonly) MASViewAttribute *top; +@property (nonatomic, readonly) MASViewAttribute *right; +@property (nonatomic, readonly) MASViewAttribute *bottom; +@property (nonatomic, readonly) MASViewAttribute *leading; +@property (nonatomic, readonly) MASViewAttribute *trailing; +@property (nonatomic, readonly) MASViewAttribute *width; +@property (nonatomic, readonly) MASViewAttribute *height; +@property (nonatomic, readonly) MASViewAttribute *centerX; +@property (nonatomic, readonly) MASViewAttribute *centerY; +@property (nonatomic, readonly) MASViewAttribute *baseline; + +@property (nonatomic, copy, readonly) MASViewAttribute * (^attribute)(NSLayoutAttribute attr); + +@property (nonatomic, readonly) MASViewAttribute *firstBaseline; +@property (nonatomic, readonly) MASViewAttribute *lastBaseline; #if TARGET_OS_IPHONE || TARGET_OS_TV -@property (nonatomic, strong, readonly) MASViewAttribute *leftMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *rightMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *topMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *bottomMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *leadingMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *trailingMargin; -@property (nonatomic, strong, readonly) MASViewAttribute *centerXWithinMargins; -@property (nonatomic, strong, readonly) MASViewAttribute *centerYWithinMargins; +@property (nonatomic, readonly) MASViewAttribute *leftMargin; +@property (nonatomic, readonly) MASViewAttribute *rightMargin; +@property (nonatomic, readonly) MASViewAttribute *topMargin; +@property (nonatomic, readonly) MASViewAttribute *bottomMargin; +@property (nonatomic, readonly) MASViewAttribute *leadingMargin; +@property (nonatomic, readonly) MASViewAttribute *trailingMargin; +@property (nonatomic, readonly) MASViewAttribute *centerXWithinMargins; +@property (nonatomic, readonly) MASViewAttribute *centerYWithinMargins; #endif #if TARGET_OS_IPHONE || TARGET_OS_TV -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideLeading API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideTrailing API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideWidth API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideHeight API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideCenterX API_AVAILABLE(ios(11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *safeAreaLayoutGuideCenterY API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideLeading API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideTrailing API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideWidth API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideHeight API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideCenterX API_AVAILABLE(ios(11.0)); +@property (nonatomic, readonly) MASViewAttribute *safeAreaLayoutGuideCenterY API_AVAILABLE(ios(11.0)); #endif -- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; -- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; -- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; +- (NSArray *)makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; +- (NSArray *)updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; +- (NSArray *)remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *make))block; @end diff --git a/Masonry/View+MASShorthandAdditions.m b/Masonry/View+MASShorthandAdditions.m index 4b1260a7..b77a4b13 100644 --- a/Masonry/View+MASShorthandAdditions.m +++ b/Masonry/View+MASShorthandAdditions.m @@ -49,19 +49,19 @@ @implementation MAS_VIEW (MASShorthandAdditions) #endif -- (MASViewAttribute *(^)(NSLayoutAttribute))attribute { +- (MASViewAttribute * (^)(NSLayoutAttribute))attribute { return [self mas_attribute]; } -- (NSArray *)makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { +- (NSArray *)makeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_makeConstraints:block]; } -- (NSArray *)updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { +- (NSArray *)updateConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_updateConstraints:block]; } -- (NSArray *)remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *))block { +- (NSArray *)remakeConstraints:(void (NS_NOESCAPE^)(MASConstraintMaker *))block { return [self mas_remakeConstraints:block]; } diff --git a/Masonry/ViewController+MASAdditions.h b/Masonry/ViewController+MASAdditions.h index 5a08eefa..6719bf19 100644 --- a/Masonry/ViewController+MASAdditions.h +++ b/Masonry/ViewController+MASAdditions.h @@ -19,12 +19,12 @@ NS_ASSUME_NONNULL_BEGIN /** * following properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute */ -@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide API_DEPRECATED("Use view.mas_safeAreaLayoutGuideTop instead of mas_topLayoutGuide", ios(8.0, 11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide API_DEPRECATED("Use view.mas_safeAreaLayoutGuideBottom instead of mas_bottomLayoutGuide", ios(8.0, 11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop API_DEPRECATED("Use view.mas_top instead of mas_topLayoutGuideTop", ios(8.0, 11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom API_DEPRECATED("Use view.mas_safeAreaLayoutGuideTop instead of mas_topLayoutGuideBottom", ios(8.0, 11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop API_DEPRECATED("Use view.mas_safeAreaLayoutGuideBottom instead of mas_bottomLayoutGuideTop", ios(8.0, 11.0)); -@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom API_DEPRECATED("Use view.mas_bottom instead of mas_bottomLayoutGuideBottom", ios(8.0, 11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_topLayoutGuide API_DEPRECATED("Use view.mas_safeAreaLayoutGuideTop instead of mas_topLayoutGuide", ios(8.0, 11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_bottomLayoutGuide API_DEPRECATED("Use view.mas_safeAreaLayoutGuideBottom instead of mas_bottomLayoutGuide", ios(8.0, 11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_topLayoutGuideTop API_DEPRECATED("Use view.mas_top instead of mas_topLayoutGuideTop", ios(8.0, 11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_topLayoutGuideBottom API_DEPRECATED("Use view.mas_safeAreaLayoutGuideTop instead of mas_topLayoutGuideBottom", ios(8.0, 11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_bottomLayoutGuideTop API_DEPRECATED("Use view.mas_safeAreaLayoutGuideBottom instead of mas_bottomLayoutGuideTop", ios(8.0, 11.0)); +@property (nonatomic, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom API_DEPRECATED("Use view.mas_bottom instead of mas_bottomLayoutGuideBottom", ios(8.0, 11.0)); @end From 72b3031986cc1a06263fa7e5b58d106b60d68493 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 11:22:30 +0800 Subject: [PATCH 24/32] remove useless macro MAS_DISCARDABLE_RESULT --- Masonry/MASUtilities.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Masonry/MASUtilities.h b/Masonry/MASUtilities.h index 46b19498..3cf10da4 100644 --- a/Masonry/MASUtilities.h +++ b/Masonry/MASUtilities.h @@ -69,8 +69,6 @@ #define MAS_NSUINT_BIT (CHAR_BIT * sizeof(NSUInteger)) #define MAS_NSUINTROTATE(val, howmuch) ((((NSUInteger)val) << howmuch) | (((NSUInteger)val) >> (MAS_NSUINT_BIT - howmuch))) -#define MAS_DISCARDABLE_RESULT __attribute__((warn_unused_result)) - #define MAS_ATTR_FORWARD(attr) \ - (MASViewAttribute *)attr { \ return [self mas_##attr]; \ From 99010cbc45eb9731e35f1353ff3e66eaaff8f8cc Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 13:40:27 +0800 Subject: [PATCH 25/32] make MASConstraintDelegate public --- .../project.pbxproj | 32 - Masonry.podspec | 11 +- Masonry/MASConstraint+Private.h | 20 - Masonry/MASConstraint.h | 20 + Podfile.lock | 14 +- .../Public/Masonry/MASConstraint+Private.h | 1 - Pods/Local Podspecs/Masonry.podspec.json | 22 +- Pods/Manifest.lock | 14 +- Pods/Pods.xcodeproj/project.pbxproj | 1699 +++++++++-------- .../Masonry/Masonry-prefix.pch | 5 - .../Pods-Masonry iOS Examples.debug.xcconfig | 12 +- ...Pods-Masonry iOS Examples.release.xcconfig | 12 +- ...asonry iOS Tests-acknowledgements.markdown | 22 + ...s-Masonry iOS Tests-acknowledgements.plist | 28 + .../Pods-Masonry iOS Tests.debug.xcconfig | 12 +- .../Pods-Masonry iOS Tests.release.xcconfig | 12 +- .../Pods-MasonryTestsLoader.debug.xcconfig | 12 +- .../Pods-MasonryTestsLoader.release.xcconfig | 12 +- Tests/Masonry Tests.xcodeproj/project.pbxproj | 64 - Tests/Specs/MASConstraintDelegateMock.h | 2 +- Tests/Specs/MASConstraintDelegateMock.m | 1 - Tests/Specs/MASConstraintMakerSpec.m | 3 +- Tests/Specs/MASViewConstraintSpec.m | 3 +- 23 files changed, 1006 insertions(+), 1027 deletions(-) delete mode 120000 Pods/Headers/Public/Masonry/MASConstraint+Private.h diff --git a/Examples/Masonry iOS Examples.xcodeproj/project.pbxproj b/Examples/Masonry iOS Examples.xcodeproj/project.pbxproj index 8ea63a4f..22630977 100644 --- a/Examples/Masonry iOS Examples.xcodeproj/project.pbxproj +++ b/Examples/Masonry iOS Examples.xcodeproj/project.pbxproj @@ -229,8 +229,6 @@ DD52F223179CAD57005CD195 /* Sources */, DD52F224179CAD57005CD195 /* Frameworks */, DD52F225179CAD57005CD195 /* Resources */, - 5C6517785DFF4287BCDF458D /* [CP] Copy Pods Resources */, - 9A6DE33A61510E8F9549C5EE /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -282,21 +280,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 5C6517785DFF4287BCDF458D /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 621F6A1FCAEF44F880874959 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -315,21 +298,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 9A6DE33A61510E8F9549C5EE /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/Masonry.podspec b/Masonry.podspec index e4174063..27c83db5 100644 --- a/Masonry.podspec +++ b/Masonry.podspec @@ -26,13 +26,10 @@ Pod::Spec.new do |s| EOS s.source_files = 'Masonry/*.{h,m}' + s.private_header_files = 'Masonry/MASConstraint+Private.h' - s.ios.frameworks = 'Foundation', 'UIKit' - s.tvos.frameworks = 'Foundation', 'UIKit' - s.osx.frameworks = 'Foundation', 'AppKit' - - s.ios.deployment_target = '9.0' # minimum SDK with autolayout - s.osx.deployment_target = '10.11' # minimum SDK with autolayout - s.tvos.deployment_target = '9.0' # minimum SDK with autolayout + # minimum SDK with autolayout + s.platforms = { :ios => "9.0", :osx => "10.11", :tvos => "9.0" } s.requires_arc = true + s.static_framework = true end diff --git a/Masonry/MASConstraint+Private.h b/Masonry/MASConstraint+Private.h index ea69b916..15333987 100644 --- a/Masonry/MASConstraint+Private.h +++ b/Masonry/MASConstraint+Private.h @@ -8,8 +8,6 @@ #import "MASConstraint.h" -@protocol MASConstraintDelegate; - NS_ASSUME_NONNULL_BEGIN @interface MASConstraint () @@ -19,11 +17,6 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic) BOOL updateExisting; -/** - * Usually MASConstraintMaker but could be a parent MASConstraint - */ -@property (nonatomic, weak) id delegate; - /** * Based on a provided value type, is equal to calling: * NSNumber - setOffset: @@ -53,17 +46,4 @@ NS_ASSUME_NONNULL_BEGIN @end - -@protocol MASConstraintDelegate - -/** - * Notifies the delegate when the constraint needs to be replaced with another constraint. For example - * A MASViewConstraint may turn into a MASCompositeConstraint when an array is passed to one of the equality blocks - */ -- (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint; - -- (MASConstraint *)constraint:(MASConstraint * _Nullable)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; - -@end - NS_ASSUME_NONNULL_END diff --git a/Masonry/MASConstraint.h b/Masonry/MASConstraint.h index 236a5677..d1ebb0ef 100644 --- a/Masonry/MASConstraint.h +++ b/Masonry/MASConstraint.h @@ -8,6 +8,8 @@ #import "MASUtilities.h" +@protocol MASConstraintDelegate; + NS_ASSUME_NONNULL_BEGIN /** @@ -204,6 +206,11 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy, readonly) MASConstraint *animator; #endif +/** + * Usually MASConstraintMaker but could be a parent MASConstraint + */ +@property (nonatomic, weak) id delegate; + /** * Activates an NSLayoutConstraint if it's supported by an OS. * Invokes install otherwise. @@ -269,4 +276,17 @@ NS_ASSUME_NONNULL_BEGIN @end + +@protocol MASConstraintDelegate + +/** + * Notifies the delegate when the constraint needs to be replaced with another constraint. For example + * A MASViewConstraint may turn into a MASCompositeConstraint when an array is passed to one of the equality blocks + */ +- (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint; + +- (MASConstraint *)constraint:(MASConstraint * _Nullable)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; + +@end + NS_ASSUME_NONNULL_END diff --git a/Podfile.lock b/Podfile.lock index eab7e76f..76debf81 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,19 +1,23 @@ PODS: - Expecta (1.0.5) - - Masonry (1.1.0) + - Masonry (1.2.0) DEPENDENCIES: - Expecta - Masonry (from `./`) +SPEC REPOS: + trunk: + - Expecta + EXTERNAL SOURCES: Masonry: - :path: ./ + :path: "./" SPEC CHECKSUMS: Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe - Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 + Masonry: 96a3fe904efc19f534b3c48982db9f616613c590 -PODFILE CHECKSUM: a30c350a250a8af6afde1caabae52ede1d76714b +PODFILE CHECKSUM: edc6e98a73a37366909dc5103723a76307aebb04 -COCOAPODS: 1.3.0.beta.2 +COCOAPODS: 1.10.1 diff --git a/Pods/Headers/Public/Masonry/MASConstraint+Private.h b/Pods/Headers/Public/Masonry/MASConstraint+Private.h deleted file mode 120000 index a3ab1976..00000000 --- a/Pods/Headers/Public/Masonry/MASConstraint+Private.h +++ /dev/null @@ -1 +0,0 @@ -../../../../Masonry/MASConstraint+Private.h \ No newline at end of file diff --git a/Pods/Local Podspecs/Masonry.podspec.json b/Pods/Local Podspecs/Masonry.podspec.json index 29d9e93c..a1cc0d0e 100644 --- a/Pods/Local Podspecs/Masonry.podspec.json +++ b/Pods/Local Podspecs/Masonry.podspec.json @@ -14,28 +14,12 @@ }, "description": "Masonry is a light-weight layout framework which wraps AutoLayout with a nicer syntax.\nMasonry has its own layout DSL which provides a chainable way of describing your\nNSLayoutConstraints which results in layout code which is more concise and readable.\n Masonry supports iOS and Mac OSX.", "source_files": "Masonry/*.{h,m}", - "ios": { - "frameworks": [ - "Foundation", - "UIKit" - ] - }, - "tvos": { - "frameworks": [ - "Foundation", - "UIKit" - ] - }, - "osx": { - "frameworks": [ - "Foundation", - "AppKit" - ] - }, + "private_header_files": "Masonry/MASConstraint+Private.h", "platforms": { "ios": "9.0", "osx": "10.11", "tvos": "9.0" }, - "requires_arc": true + "requires_arc": true, + "static_framework": true } diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index eab7e76f..76debf81 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,19 +1,23 @@ PODS: - Expecta (1.0.5) - - Masonry (1.1.0) + - Masonry (1.2.0) DEPENDENCIES: - Expecta - Masonry (from `./`) +SPEC REPOS: + trunk: + - Expecta + EXTERNAL SOURCES: Masonry: - :path: ./ + :path: "./" SPEC CHECKSUMS: Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe - Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 + Masonry: 96a3fe904efc19f534b3c48982db9f616613c590 -PODFILE CHECKSUM: a30c350a250a8af6afde1caabae52ede1d76714b +PODFILE CHECKSUM: edc6e98a73a37366909dc5103723a76307aebb04 -COCOAPODS: 1.3.0.beta.2 +COCOAPODS: 1.10.1 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index cfe9999b..1e0bbf83 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,806 +7,813 @@ objects = { /* Begin PBXBuildFile section */ - 0435080233FFD861A266AB43BE3279D3 /* EXPMatchers+beNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 2251A125FE1F9EE61891B85AAAE71511 /* EXPMatchers+beNil.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 045E77138594FCD0492D74EE7C22AC90 /* EXPDoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EBF9BAD2F54920E12BA8D79EB3EE01C /* EXPDoubleTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 067B3CDE5AAD4D941172A17C9EEA5916 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AF06A246FC5C7C1E779C3BFB883040C /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07B309A8727E5DBE05DB1F644F7B8D8A /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A54ADC5F5885AE49835C21390D7B42C /* MASViewConstraint.m */; }; - 0B3330DD885757A45805E83A69E7AFFD /* EXPBlockDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 55CDC4616612ED7AA50A3E836E82B6BE /* EXPBlockDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0CD876A643FA00F42565F0B4CFE5C360 /* Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 50660A3CB85C3AEC478DB2211E3CD76D /* Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D4B6D7C17953EF6C0BEFADA699DA6D2 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 194EE173246D25F2D7ED8C47FAF2ACF4 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E8E7C035F8969CF3DC93E5490A6158B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE147446A1225BA68EA82615B1436CC1 /* Foundation.framework */; }; - 0F7BD72B0882E4D4DD27C3B914EC3857 /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A28546AD6B1C73C384E28625120AED5 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0FE4C580D709657792E5661E74F171D5 /* EXPMatchers+match.m in Sources */ = {isa = PBXBuildFile; fileRef = 10F25824C22E66EAFBAA5C0F62629D84 /* EXPMatchers+match.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 119C10C9E57E10B254B8B13A06D332F4 /* EXPMatchers+raise.h in Headers */ = {isa = PBXBuildFile; fileRef = 10F0627165FE862DA384F755B45FD6A7 /* EXPMatchers+raise.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11B98D7660EAD3B22A6F8DAFAC8E96F8 /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 75992ED787187D30BE4B5F69BEF5EE30 /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 120A345233C900C50BAD6F3950FAB8FA /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 82F3CFD18ABD64DD8E88230EE43D854A /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 12ADCD5E7598997A3486E62E784DB241 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 61A4675B57359AB9653085CE195438A0 /* EXPMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 156873FB2669378F00656904 /* View+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F42669378F00656904 /* View+MASShorthandAdditions.m */; }; - 156873FC2669378F00656904 /* LayoutGuide+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F52669378F00656904 /* LayoutGuide+MASAdditions.m */; }; - 156873FD2669378F00656904 /* LayoutGuide+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 156873F62669378F00656904 /* LayoutGuide+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 156873FE2669378F00656904 /* NSArray+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F72669378F00656904 /* NSArray+MASShorthandAdditions.m */; }; - 156873FF2669378F00656904 /* LayoutGuide+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 156873F82669378F00656904 /* LayoutGuide+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 156874002669378F00656904 /* MASUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873F92669378F00656904 /* MASUtilities.m */; }; - 156874012669378F00656904 /* LayoutGuide+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 156873FA2669378F00656904 /* LayoutGuide+MASShorthandAdditions.m */; }; - 19CDE56AC4388C284D9A394F64E0530C /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D20E91754698E478D6D3E468D5EC2C8 /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AF47B7901796231A318934C2F0DDC04 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = DBCE4AE4A77A457256CB505688569B23 /* MASLayoutConstraint.m */; }; - 1C74D210067A2D584AA672E61F246ECC /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = CBEA9FE72B61C2E594B205165A09ECA7 /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 1D622FBC8A4262E6B398F5CCCB1D9650 /* EXPMatchers+raiseWithReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 228937A58D5E1EF34C595366A42C018E /* EXPMatchers+raiseWithReason.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 1E2343F7AE04C5D386CCD455E84F13E0 /* EXPMatchers+beTruthy.m in Sources */ = {isa = PBXBuildFile; fileRef = 56B7202FE09B3976D80FD78EF63258F6 /* EXPMatchers+beTruthy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 1F002B6CD1662BADA6556D76FFFE0B96 /* Pods-Masonry iOS Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5478FCE860D549499E9B142210C4E612 /* Pods-Masonry iOS Tests-dummy.m */; }; - 24FF4A3B66A2F383BA14790790108406 /* EXPMatchers+haveCountOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 663B481626C7E7C19A7A42120FFC0E77 /* EXPMatchers+haveCountOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 2523657BEE249A532CDFD495AC911F39 /* EXPMatchers+beLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B14D8EAF812AD82BC8BA17C3DE5B573 /* EXPMatchers+beLessThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 28BC58EE3C7374C4C2DEF6D029011C84 /* EXPMatchers+beInTheRangeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B014C13318B98A27EB6C15EB341678A /* EXPMatchers+beInTheRangeOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 28DD12DAF70F49B558112AA5E2809F19 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D2BB147FD43518883D32412C882B443 /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C8FBF03AD0FD40587A84D2994D758B4 /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 01B7B1098F825865196B739BF9E36C04 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C944499E3BB44E17E10959A76BBAEA3 /* EXPMatchers+beGreaterThan.m in Sources */ = {isa = PBXBuildFile; fileRef = B1B09BEB8A5DCEEF709CBA1F5CEE0B3B /* EXPMatchers+beGreaterThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 2D814705CE041C701138BD9147CB21AA /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = AEEF83956F9DBD675F4C2EF46B690567 /* MASConstraint.m */; }; - 31D27BF6DE823F040465EEC46431E22E /* EXPExpect.h in Headers */ = {isa = PBXBuildFile; fileRef = 7735CC4570D0C643EF99240D43284C4A /* EXPExpect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38B02E0B37B1F0225FBE396BD51461D9 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F83FB50741120EF2F5F9723A76C9099 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 391226D83570CA724B533A2C609A5EF5 /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = DD2917440B958D545CC2EE8F2240D37E /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 3AB6F716B6B591E90D2E2CB1434B55BB /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 593CB40473F1E441BC65F0044379DA72 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E2C9C19590011C8FE1F3966F4AF52D5 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 48FB054B1F997F66CA0E17DB3B26223C /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 409B7E241957B5C0ADFA4DEA82CDA7AB /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 02DA3844CF514753E9CC1AE66A762D26 /* View+MASAdditions.m */; }; - 42FA711D0BA099127544F7A978075C9D /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = AE58747F7ED5EE1564AC83C82F3C9DEA /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47E018E82EA7801C93BE8D632FBAA3EC /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD8638DC7137054523DFDCD37576559 /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4943F7D828D56A874ACCA7AC312F863B /* EXPMatchers+beCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = C3EDF7B170EC221838CC2A773B0CDC59 /* EXPMatchers+beCloseTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 4B76A75E1FA371E7EF6C821CD52514A1 /* EXPMatchers+equal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8780C4CC76E68DD8EA97F0E4B3287D64 /* EXPMatchers+equal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4C2D57EF131B9A1AA1A65F36DA717BC7 /* EXPMatchers+beSubclassOf.h in Headers */ = {isa = PBXBuildFile; fileRef = CBFE4C2A8558AE9FF24FCA67343113E2 /* EXPMatchers+beSubclassOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E89738B989CA5A6018187E52FE0E216 /* EXPMatchers+raiseWithReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 13852BA59629381181212D4693F5CEC8 /* EXPMatchers+raiseWithReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4EB308BF802E6F21BABDA8B8718CC7AB /* NSValue+Expecta.m in Sources */ = {isa = PBXBuildFile; fileRef = ADBF0443B4181A4D41268AB9F62AA73C /* NSValue+Expecta.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 4F51EE6366844B6C34DD13F77D9A76CA /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B80588779A2286A5E054DE4D0DDC03A /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4FE0FA38EA4BC9922DB982A2FB4B504A /* EXPMatchers+endWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EEECBC2AC825C5498273AB762F561EF /* EXPMatchers+endWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58E38027B0A4F6CA7BE54F0AE8D4885B /* EXPMatchers+conformTo.m in Sources */ = {isa = PBXBuildFile; fileRef = C565C77B7F3AC98E871994970653A958 /* EXPMatchers+conformTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5D50DA13C7A8B2AF549AA4F05E69F9F4 /* EXPMatchers+respondTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9616A699420336DD8F227A5C41E36432 /* EXPMatchers+respondTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5EB8C17604A5FCA7B0F9174850D0441F /* EXPMatchers+beginWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 49E1D663D9B2CCDFFC739982A06D57C5 /* EXPMatchers+beginWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61E89F8C6D2C5658ECADCC9BE04E4E0F /* EXPMatchers+beFalsy.h in Headers */ = {isa = PBXBuildFile; fileRef = 481E644C11C98774BE98309BA0A2CB6C /* EXPMatchers+beFalsy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6209E20926D79222E59F58B962BFAA1E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDF04AEFCC4B011565BFFBFFF52B2FCE /* UIKit.framework */; }; - 62A200B73B76F6740A3EEA168FBFFF41 /* EXPMatchers+match.h in Headers */ = {isa = PBXBuildFile; fileRef = 88907F8AEA4C9B20AEB63E2047F54502 /* EXPMatchers+match.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63CDCCAC82CBC33021220531D93213A2 /* EXPMatcherHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD870522AC013353A13269A9CDEA664 /* EXPMatcherHelpers.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 643DE0287F1066D083368EAC928DF078 /* EXPFloatTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EEA345137E6F1B86DEC1ECEA04BEBD5 /* EXPFloatTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 660BEA8AC93BC6DF29A73D1570C10120 /* ExpectaSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 80708E2496B3C69452E559E575CD1D47 /* ExpectaSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69DCF5F3A96B49720B728BA6EF5E095A /* NSObject+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = C0F0C9DE4D36C0025D1A49B0106644A4 /* NSObject+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DA9AB53FE1CA890DF5FB0468FA0F476 /* Pods-Masonry iOS Examples-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F2DF08BADAA0D595D88E9A5F2F4AE8F /* Pods-Masonry iOS Examples-dummy.m */; }; - 7100640F169A4EC93CA15F0D8B5AFE8F /* EXPMatchers+beIdenticalTo.h in Headers */ = {isa = PBXBuildFile; fileRef = C98931A95CEDDC4098458BEB8FF864ED /* EXPMatchers+beIdenticalTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71FBC2F8907E29EB767026E6A08F7EEF /* EXPMatchers+beSubclassOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 98AFDA78C0BA149C8976CF3889419AA7 /* EXPMatchers+beSubclassOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 76A58C6131A1264FDE3DADAEA0AC83F5 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = E66C1687519434878576CA9CA479B868 /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 76FFE0A5253E08250D976CAE912B89D9 /* EXPMatchers+beSupersetOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F3869A1E846595FC8A567E9EF91600E /* EXPMatchers+beSupersetOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A50398D1D6F1D22165ECAA192F9D1CF /* EXPMatchers+respondTo.h in Headers */ = {isa = PBXBuildFile; fileRef = D242BA4F2D8595007967657C3EBF92CE /* EXPMatchers+respondTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7C4FFAF7E7BD72B4775C2966898B3A83 /* EXPMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F3B66464C8F4DC1EDFFEA58A98F9B5C /* EXPMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80408C0CF9D13D89E500446267DD0041 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 358E8501C72A8B4A191589A7570FCC15 /* NSLayoutConstraint+MASDebugAdditions.m */; }; - 863C5CC8F4698A0C85AB53C9B072D889 /* EXPMatchers+equal.m in Sources */ = {isa = PBXBuildFile; fileRef = BFE37A3BBF6AEB4B7163AAE1BD655CDD /* EXPMatchers+equal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 87C087B7F1B93C2DD0B42A93B3E9D9C4 /* EXPMatchers+conformTo.h in Headers */ = {isa = PBXBuildFile; fileRef = E36B444420761FDAD709E0D161F812C1 /* EXPMatchers+conformTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 885C2534832AF6B1DFA98FA19C4D9994 /* EXPMatchers+beKindOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4C6FD0E96DEE3BA24A38BA86A2EE83 /* EXPMatchers+beKindOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 8994485FB1398BF225377D4C109CA38B /* EXPMatchers+beKindOf.h in Headers */ = {isa = PBXBuildFile; fileRef = E1DAB7DBD1812988117194D50ACE07A0 /* EXPMatchers+beKindOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94C94F986312F61D076591DBCEC07104 /* EXPMatchers+beInTheRangeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 10904D53FD27FC7E59BF92201687D517 /* EXPMatchers+beInTheRangeOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F196561D7369053FA6D9FD4374E85B9 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F34293A1C0AD9FD7013D79B910FE7E5 /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A12B39559E464A1089E4389274973616 /* EXPMatchers+beLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = E4CFDB3889CFAC5E05497101D3F82C0A /* EXPMatchers+beLessThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A193FB77C3606DE847937B79BD869F26 /* EXPMatchers+beTruthy.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AAF8809A7BBA8A694825848A7EF07D2 /* EXPMatchers+beTruthy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5CB8C92268FCAC7B00F12EE55B43338 /* EXPMatchers+raise.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D1DE5A0855C3142FCDE4471717B4C92 /* EXPMatchers+raise.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A8A60B0CEECC7D7C9D8CA6B2DC811C64 /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = BB267133DB0AAEF96D19D2085B85E06D /* MASViewAttribute.m */; }; - A904D2D6242F68CC3B959E2B0FC8B4F9 /* ExpectaObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C060BC1E7116BC87FA94B45087D771B /* ExpectaObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - AC80F28E4B250E6535484F5269566FF0 /* Pods-MasonryTestsLoader-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B4963257702BBD9CAF03BECB9D16F0 /* Pods-MasonryTestsLoader-dummy.m */; }; - AEEF0434A83EF5F1949252A8409F71DD /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 6CBE98CC00A3DD78FC850D713EB164BE /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFD341AE846EE3D48F3832FB858FD31C /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3683CAB8F5A6384907767DF9817A4B09 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B1820A5E15F22942E386756A0473E808 /* EXPMatchers+beLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 122F547802BB911D1B9F0D52C33B568D /* EXPMatchers+beLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B1964DABF421B8BA6BB9AB9E1CC0E387 /* EXPMatchers+beGreaterThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F04D682D92E0B2B40FCE8BE214BDA61 /* EXPMatchers+beGreaterThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B241CF27E6B9D2DBC3236BDC1BDA5B69 /* EXPMatchers+postNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C5D45C77F469660C6D6155EA159784F /* EXPMatchers+postNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2880B5D7D91AACFCEF345934CFEBA55 /* EXPMatchers+beInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C71CEC9EB6A0B127237D9BE7AAB6081 /* EXPMatchers+beInstanceOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - B66BCA2DD1043A4356B5286F346F8049 /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 585243F6624B3378D0DA0CF280D9F8EA /* Masonry-dummy.m */; }; - B709C0890B67EB6C1AB9B9738CDBEEC6 /* EXPMatchers+beIdenticalTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 687D54A17077AB5A8B750650CACBF3B3 /* EXPMatchers+beIdenticalTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - B72D6F9CD6DCCF9339A269BC0CABA88C /* ExpectaObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 4730731B518BAFE15142AA613F01F2EB /* ExpectaObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B7FB8C30C577D624F5E0B1FDB3E6CD8B /* EXPUnsupportedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1DE5E5E11E91062A5DA859EDCE3C49 /* EXPUnsupportedObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BAA98BF425D78B9F9FB405680EA0CB3D /* EXPMatchers+beLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 8140BF73F39AA0E15893403B6B2DCD9D /* EXPMatchers+beLessThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB0E62892680D990AC167E4629F95062 /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 59623D6FE7CFF9076F3ACA8D492A0A1E /* EXPMatchers+beGreaterThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C091203A57422574B3263D1E9BA53A87 /* ExpectaSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D8A10F7BEA143532312B95447C5A5B7C /* ExpectaSupport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C498F24E736A80A0F6C440DBC33AF494 /* EXPMatchers+beFalsy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2547652506D61F49D4B0882ED6B64B16 /* EXPMatchers+beFalsy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C64C4032827660F5ED12E425857BE673 /* EXPMatcherHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A3DE5BA9F1F1BFDC50FA062018A4FF9 /* EXPMatcherHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C670343470EAC260E60ABD463CC39E2D /* EXPMatchers+beginWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 34177F23961DA5ABF45170FA2037F8C1 /* EXPMatchers+beginWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - CC995F4F36E9D6237AFC6F729364B867 /* EXPBlockDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 57E3007D6F08B4F287C35811E372C9D8 /* EXPBlockDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - CDA268F5B643324DD61A0E25BD4179ED /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C9A0D7E24E5DCE2B938FC4C4901B353 /* EXPMatchers+beGreaterThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - D2BD7E6904BDD20074AB5A8B04400EB2 /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A30D7435201DE311E06A35CEA390581 /* ViewController+MASAdditions.m */; }; - D3B4D194BECF709DFA85E588891B885E /* EXPMatchers+contain.h in Headers */ = {isa = PBXBuildFile; fileRef = 44127DD3F6457EEB52F5B0B644C748E5 /* EXPMatchers+contain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D69C7F6B7677C82AABBF7FE0057CE931 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = FC8A8F10966AF0D4BEF49EBF2CFF4C0C /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D904A66B88A11E0356D09C38CA20102D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE147446A1225BA68EA82615B1436CC1 /* Foundation.framework */; }; - D94F3CDE976C052BF0BD112E257A7F19 /* EXPMatchers+postNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 065A35D6EF149C4D848B49BAA59DAE1E /* EXPMatchers+postNotification.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - DBA55CF16CB958E3F3D38079F18EBC06 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE147446A1225BA68EA82615B1436CC1 /* Foundation.framework */; }; - DFFE7035A8177E14B29DE53973AE3B1E /* EXPMatchers+beInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B9D165EC173241B2C9EFF6FDB72491D /* EXPMatchers+beInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E220D02AE7833F8B9202B0304FFBB644 /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 8524B32277BDB7E1A36FB5F3EB3BAC6B /* MASCompositeConstraint.m */; }; - E846C94664199B4B993866C557EEC20D /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A31938A554F154B402756FCBFE7167B /* NSArray+MASAdditions.m */; }; - E95DE019212836608A35BF3270AADF17 /* Expecta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D50A0454EC2ACA566EC1A84F70DBE96A /* Expecta-dummy.m */; }; - EBFA48D334098E6BAB801E6FB8F756C0 /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = EB9E853361218FD2866DABF9A3E384D5 /* MASConstraintMaker.m */; }; - ED087996824EE3256B222E3BAEBAB14D /* EXPUnsupportedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 035F256E7A521234689F67B3EC887567 /* EXPUnsupportedObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - EE5A8DD4F03A890084772DA66DE9BE93 /* EXPDoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = AEDF716CFA2F6ADA12E2C6D67EF8B2D2 /* EXPDoubleTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EFCF1E2468BC28069F92B4702B5DD463 /* EXPDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F338BE8E88D6EB9496878863145B7C5 /* EXPDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0B56A7D38A399A2F67F9920C9526A66 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE147446A1225BA68EA82615B1436CC1 /* Foundation.framework */; }; - F3D6C90DF502E4B6BFA4B4B950FB176B /* EXPFloatTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 63BB2BA348CAEB74A836E775BF8ABE2C /* EXPFloatTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F589CF64CC8ED22D9F37824176FBBB72 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE147446A1225BA68EA82615B1436CC1 /* Foundation.framework */; }; - F7B20B4187947E3B6B93F0457C239D0B /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2D9897D646E2BB9FBF73704C04440B2 /* XCTest.framework */; }; - F8E39087737225714939DB0252FB1114 /* EXPMatchers+endWith.m in Sources */ = {isa = PBXBuildFile; fileRef = B20D7BAA1D4E85394D4C0BCBCB2BF960 /* EXPMatchers+endWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - FE84239BE923F217FD38E45B4F770EFD /* EXPMatchers+contain.m in Sources */ = {isa = PBXBuildFile; fileRef = DB37BB623433F136572448D26D6FB70A /* EXPMatchers+contain.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 03A812302F4831B26EA5D4090B743A8E /* LayoutGuide+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B394FB6D49FAF7FAD8D13D36456DC71E /* LayoutGuide+MASAdditions.m */; }; + 04DDC981AAD7F73EFDFD96393C227827 /* EXPUnsupportedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 4264D1B3E3017D85F1079D57BDF5A1D8 /* EXPUnsupportedObject.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 04E724A97339965ACA4E5D60226DA001 /* EXPMatchers+beIdenticalTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4448FECF990760A568B005012B766C32 /* EXPMatchers+beIdenticalTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 051D4B5709A6257B6F79D54D9139E812 /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 87B08263B34CC746FC1645359B11B5D3 /* EXPMatchers+beGreaterThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 07E5854E45B4F185DAE8FDC36C94EECE /* EXPMatchers+beLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 66DF1607BF8FFF84DD6639E94DE88378 /* EXPMatchers+beLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 08972BEC745F3895C5FE98732BB0E646 /* EXPMatcherHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F988A27369666BDE47CDB2B6C809945 /* EXPMatcherHelpers.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 0E66A0F36DD725E82041A51F593EA534 /* EXPMatchers+conformTo.h in Headers */ = {isa = PBXBuildFile; fileRef = B0A615E519E5DEE91A404198AE2BFF8C /* EXPMatchers+conformTo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 102AE0CDC0AFA43305803BE841A059DB /* NSArray+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A32849E7FB9B4BC1FB808FC936C98713 /* NSArray+MASShorthandAdditions.m */; }; + 1222560B913CB9C9C0D14221D02C8306 /* EXPMatchers+beTruthy.m in Sources */ = {isa = PBXBuildFile; fileRef = AD63EC1E37D24355FE834107F62FAF98 /* EXPMatchers+beTruthy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 1528461638FECB52FE7EE250B23806FA /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 8076E486DC7258AC955A834960FE452D /* MASUtilities.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 18BBFC91DC52B7E491AD40E884F99FA5 /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 25615882305B886DDE423AE5E03DF5CB /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1A4BC62A5EBA7F92D2074FFAADC4E6B5 /* Pods-Masonry iOS Examples-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E79AA722BC2B1C69DC4D0A106BFFC372 /* Pods-Masonry iOS Examples-dummy.m */; }; + 1CE288226DA4D5164FDE93288F20616B /* EXPMatchers+beNil.m in Sources */ = {isa = PBXBuildFile; fileRef = B8ECC452F75A277850F64A0E33F274C5 /* EXPMatchers+beNil.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 21D97B29CD24881CDB275150FFACB46C /* EXPMatchers+raiseWithReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 7340210602BDFD1CA8C7535091837F6C /* EXPMatchers+raiseWithReason.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 26E33CBCA823C72C51357582994E746C /* EXPMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B6580C52FB3F2F65EEF0CECF613374E /* EXPMatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 276339BBEAE2F06F12EA19FF6BAA6F33 /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 3967033705D28226FDBC02F4EF3D832D /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2D5858A78F99A1196B5416C63B18F8AA /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = D11D1CDDEDFF327522CA54BE7DF33771 /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 306CE82B21363D3A2BE5791B0441F22C /* EXPMatchers+beKindOf.h in Headers */ = {isa = PBXBuildFile; fileRef = BD8B0206EA620497EDB7CAFA9EDC7B95 /* EXPMatchers+beKindOf.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3160B54E02BA3F57402FD9D1864922C0 /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E26DB36C1AA9C59E8967814F19171F5B /* NSArray+MASAdditions.m */; }; + 32AB00AC549EAE7537CB60F40224320D /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 933C56887CDDDBE0D8B572C8C77FF0CA /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 32C47F4F9EC749FCBC28A4BCB3599A77 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 30933C59CA21076A391BAAAB4AD2CD4C /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3726CD36BF4080EE1145EC822AA6BF4C /* EXPMatchers+match.h in Headers */ = {isa = PBXBuildFile; fileRef = A2FFDEE02AC253C0F7D76BE7E3F32CAE /* EXPMatchers+match.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3FB675C0E73B6F8058EA1467E1A33C16 /* EXPMatchers+conformTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 43A67C92FB8A7592CBCE09307DA01AF0 /* EXPMatchers+conformTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 43163FF5C47E1BAAC12E171C188302E1 /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D7E76599E0A16881905020078431451 /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 477C77170BBEBE5DA4591B9C45A375B4 /* EXPMatchers+postNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BF8087A416A7EB3F95BECB53A82AE7F /* EXPMatchers+postNotification.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 47BA6E07A9AEBBAD52E5F15A033C864A /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = DD81653C343E839304192B62BD84A4A1 /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4954A385199A818B177E146777CF37D6 /* EXPMatchers+beGreaterThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EAF619D343CBB1CF3B7401F31AEE720 /* EXPMatchers+beGreaterThan.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4DEC4FC7A759ED6E40C6706E5E500543 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = E62CAE4ED2112AFC39C375049F2E74B8 /* EXPMatchers.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4EBE6AD128FFDF53A3FD68082B37B051 /* LayoutGuide+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = ECD13968D0CD6EACE4DCB09F9AFE00CF /* LayoutGuide+MASShorthandAdditions.m */; }; + 506AEBBD21A6F1D89B5AA6D1EFA1C62B /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 02EEB3D513AE4127353434103F20DF7A /* View+MASAdditions.m */; }; + 523CE30C095A2236A550FDB03991970C /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A5716C1E8A1774B13BE9A33DC8D68EE7 /* Masonry-dummy.m */; }; + 527A1FD6FD79117C535D19213B9011D1 /* EXPMatcherHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = F0A3A42C3994852DE718F3A82885C4F9 /* EXPMatcherHelpers.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 55E5FF4DC5EEEC6B400A0D87E3193890 /* EXPMatchers+beInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 829FE3CD93FECE6DA8F960BECA7004DB /* EXPMatchers+beInstanceOf.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 57BA46DFE2F32F04F308289610F73EDD /* EXPMatchers+equal.h in Headers */ = {isa = PBXBuildFile; fileRef = 82027158F59D887F35B18901C0012EDE /* EXPMatchers+equal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5A43305F185AD6B24558485ACBAC13D3 /* EXPMatchers+beInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 769D2BD9A360398965D078254446EE92 /* EXPMatchers+beInstanceOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 5E6233C210A6AF47C79AC729CE57536E /* Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DB89D24ECB0566107D944096312C3FA /* Expecta.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6214814A6B4ED5038353C2DE0F71DE04 /* EXPMatchers+beKindOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F3E3D128DE2E8B3AC4885CEE00FCD05 /* EXPMatchers+beKindOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 631AFE3D6BED4FE218ADBF212982DF60 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 1735ABCBAE67332541684FB30FE21FDF /* MASLayoutConstraint.m */; }; + 6696CBE4654AD391C63CD4E85ACF2C97 /* EXPMatchers+beLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = CA4DCA67ABD5C5D5A881EECB095C616C /* EXPMatchers+beLessThan.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 69349BECD39FBA209D2ECA0AFE6550AE /* EXPMatchers+endWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EB461EE218697A6B792EE827934B5E0 /* EXPMatchers+endWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 6AB635E53472AFA729AD959EB18363B1 /* EXPMatchers+beFalsy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AA7AE2F6519C01A858AA56ADC6C0118 /* EXPMatchers+beFalsy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 6C2B1FA8BDF3452AD5C6E640AE95AA6C /* EXPDoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = A10F1DEA5080C60C5317CFFF97E16F32 /* EXPDoubleTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 6D311E7FBE67BFDE9E812885324764C3 /* EXPFloatTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 4324340906222BC4D70B66CC607CE6EE /* EXPFloatTuple.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7021D3AF25EC280F69E49EC9FBE59484 /* EXPMatchers+contain.h in Headers */ = {isa = PBXBuildFile; fileRef = 0414F8191399724707CC515B23938266 /* EXPMatchers+contain.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 70384A05DD64D46FE1E31969F1C4F88D /* EXPMatchers+beGreaterThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EAC4DB7F4781EFDF9CAEE010CE316A9 /* EXPMatchers+beGreaterThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 71386C6E62CC5331AA1D008197CEF602 /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 48110E19BBB54C5CA27DE1EBA62F7562 /* ViewController+MASAdditions.m */; }; + 738B88E8018D3400546022C0A2641846 /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = D3EC2F097AEE540C90EAC265773EDA85 /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 73AC6EBD206F2AA9370C1032889C0861 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 10AA62639EDB09AE916B3DD8AAD36DC3 /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7C1632A83B80B163FAC5297F8E9576D1 /* EXPMatchers+beIdenticalTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 94E012777A2AE21B882A02354D0DF491 /* EXPMatchers+beIdenticalTo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7C6E59F6F0F3A29811C4CACC9928BECF /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = B0EE972E8F932B04E66E65DE82870717 /* MASConstraintMaker.m */; }; + 7FD25AE74C165D37BB9909EF2026746C /* EXPMatchers+beginWith.m in Sources */ = {isa = PBXBuildFile; fileRef = C72BD4201E0FB72BE43A4CBBAE69E443 /* EXPMatchers+beginWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 80E371FE77A34E12BA35EE5C7EEC092C /* EXPMatchers+beLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = EB57A7C7BEF752029BE858DA4636F52D /* EXPMatchers+beLessThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 85F1E88FEEBF9B0337821E05C048AC39 /* EXPDoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 40848C0C12BFC3FFF04BA34DE0CFEDE1 /* EXPDoubleTuple.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8873174683E2EE234F3A3EB7A9B4F15D /* ExpectaSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 854B390E1F4E5BB07C6CFA25B7691D16 /* ExpectaSupport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 8E971E2458163B8D717523B8D8BC892D /* EXPMatchers+match.m in Sources */ = {isa = PBXBuildFile; fileRef = A42A1FB895801BDD4E5B7B57B0A05104 /* EXPMatchers+match.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 8F5B10D2E6BD453C535653D36FFFE4BB /* NSObject+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = E1F40E1B3615FA57953ACE2F203E7197 /* NSObject+Expecta.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 94A899454728A627B3A09E219D11F90B /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D8B3763578E6D0CC56EDAD33A2903A /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9D96E887F3AF3FCB896F40F6167D03AF /* ExpectaObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 2287AC47D72FED8A0AFDC9B7EBE176EC /* ExpectaObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 9DDE1BDD1C6207009250EDA6C41F0621 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = BBC072082F2C1B0D3CFDE03BBBCFD125 /* NSLayoutConstraint+MASDebugAdditions.m */; }; + A12CFB59F38100C987161083B914187D /* EXPMatchers+beSubclassOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EDF2951F01474822E0E8F9EB76143A5 /* EXPMatchers+beSubclassOf.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A157FC2DD0DD20D4214ABAF18EA92FD2 /* Pods-Masonry iOS Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A87D3A7AB8CCF25E87BFA76CAB7CAA8 /* Pods-Masonry iOS Tests-dummy.m */; }; + A1FE1F032E5FC3DD14514274810CB920 /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A2355A7FF831E92E2450625F2701398 /* MASViewAttribute.m */; }; + A26ADE1931856B9F72370EB470D145D7 /* EXPMatchers+beTruthy.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B6CD575CEFDAC7E72EFE1A907057FB9 /* EXPMatchers+beTruthy.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A3E9D8D3FCC116B9977B4D9D15931763 /* EXPMatchers+beInTheRangeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = AA05135B80F02BA708E584BE93EAE509 /* EXPMatchers+beInTheRangeOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A51F7ECF32728036C3977EA073A559AD /* EXPBlockDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = B753A37B576884F5FADB6E1C7BEA5013 /* EXPBlockDefinedMatcher.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A5D55782524E9DA98FB2CF6C28E84110 /* EXPMatchers+respondTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C9BFB46434107BF7B2A364929A9075F /* EXPMatchers+respondTo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A7AFF805552754168FE472102902BEE8 /* EXPExpect.h in Headers */ = {isa = PBXBuildFile; fileRef = 42A6E443D42C1EE234A2449E3F370942 /* EXPExpect.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A90ED8FE67ED58BD5E6A858A359578EC /* View+MASShorthandAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 70EA2CAC52167DA57CEEEA6F37C6D3AD /* View+MASShorthandAdditions.m */; }; + AA33310A145547AE371A726E9977CFA6 /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = B61415DCBA8E999175788DC91B459287 /* MASViewConstraint.m */; }; + AD2CF66258C344DB8B748A7D7325059E /* EXPMatchers+endWith.h in Headers */ = {isa = PBXBuildFile; fileRef = F54F5DEC635206C3D85182A54CDFC024 /* EXPMatchers+endWith.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AF4EEDDC8B4D37D4105C7AC3A571A6B3 /* EXPMatchers+postNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = B60F53F110FEC4A9658F125EC15D6948 /* EXPMatchers+postNotification.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AFA0CA5DFE3673B8D2E37A2B3A4528BE /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F77CE96F3DAB41E69EE8BB9050E257F /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B0010BBE7F27AA63239F8B31D4AB4366 /* EXPMatchers+beSupersetOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 803A15B8EC7FC56D120C016A7B89BBCC /* EXPMatchers+beSupersetOf.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B353DEE0F707A17093B0D8A5F53894D9 /* Expecta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 37BB8D352222CE40BC119089DA9D26C1 /* Expecta-dummy.m */; }; + B458BC2D677BFE2781CA179888E41364 /* EXPMatchers+beInTheRangeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = AEEA81685BED00CA2D08644B3D992447 /* EXPMatchers+beInTheRangeOf.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B5D629B65A97D9E8EF4D5BAA4F40C0FC /* EXPMatchers+beSubclassOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AD8B96FC6EA509C6208FBBD04895018 /* EXPMatchers+beSubclassOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + B6C36294D61D4423CC9B49A740BF688F /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 33D751850CDEDE02F7ABFACA6610FDC9 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B7603387DF30944EE2AF64E8AFD9B996 /* EXPMatchers+beCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 86F3DEAD3699B41D07009E64FE392FBF /* EXPMatchers+beCloseTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + B819BE48290A13E9CD053F018F294ED4 /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 40510E8BC036FFDDF98EB28362EEFCEC /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BCCC03AB3BEC74DAD5170A8441D9BBEC /* EXPFloatTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 541464FB5D516499DF0360723BD4BB7C /* EXPFloatTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BD34E05A130785C83EE6C4CBD584F3DD /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 74DF6E1ECAB984700147F9BA24F206B3 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BD769EA7F521A62B01BA7C52FBFE218B /* EXPMatchers+equal.m in Sources */ = {isa = PBXBuildFile; fileRef = 070DD0B5FF3AEC96294E28E7546898E3 /* EXPMatchers+equal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BED84F19DDD265A8DC03B3F4DFFEA254 /* EXPMatchers+beginWith.h in Headers */ = {isa = PBXBuildFile; fileRef = F1A2974DF0EE9CCF9D1F937EE0B0A041 /* EXPMatchers+beginWith.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BF0E9FC2F301F77F02220AA076BE6443 /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = C216D527A6F209AB9AAD544000E63427 /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BF9E3937CCFD78E7DBE3EF757C4B9093 /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 43836DE8E97F5392C276F30B8D7AD514 /* EXPMatchers+beGreaterThanOrEqualTo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C5ABCAD032D262081CC9D9A46F2315E4 /* EXPUnsupportedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC10A91468BFB1107398DCBD3671CB /* EXPUnsupportedObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C8DDC08BD15D8DD739AE3CF79C5D7507 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 4512CC9B9209948D1320D1A93879F65F /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CAE8D9E60604DD9EEC6F00A0E01E0C4F /* EXPMatchers+contain.m in Sources */ = {isa = PBXBuildFile; fileRef = 6173CC31C10F0050D31733615599B090 /* EXPMatchers+contain.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + CE16D7663764375961128F92A95710F1 /* MASUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8B1FF46411CDB71C0D319565D34343 /* MASUtilities.m */; }; + CF56C02D0DA8F5E60905D7CBFC2828C3 /* LayoutGuide+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC4E206495C50DD1987B8C7829F6437 /* LayoutGuide+MASAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D1BF0D14765A5F2B82A53A58E7912DF5 /* EXPMatchers+respondTo.m in Sources */ = {isa = PBXBuildFile; fileRef = F5A15DDD5B56508596B637D37E7CF067 /* EXPMatchers+respondTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + D33C600E6B5E582C65F3EF397CAD3338 /* EXPMatchers+raise.m in Sources */ = {isa = PBXBuildFile; fileRef = 4208F20FBB51E24C0035B0A9043519E5 /* EXPMatchers+raise.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + D8A570B2BE3BD8D7BB992CCE3FC27319 /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A49105F3076B160126FA5F97C1C3C12 /* MASCompositeConstraint.m */; }; + D8E614EDAA6E90ACCD4020CDEF64FB08 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 28F25B1BD3C8C2239E421AF5DBAFFCC3 /* Masonry.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DA7B989AFE2B409E9EF6BF04120B8C13 /* EXPBlockDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = E4BE7BE136208AF771E88F33DCD45DC8 /* EXPBlockDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + DFAAA5ED8680564064326FAFC53E3482 /* Pods-MasonryTestsLoader-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 299ABE997F6723183C584B121F94415E /* Pods-MasonryTestsLoader-dummy.m */; }; + DFEEB75EA1B2172C382FA8594ADA0241 /* EXPMatchers+beLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = C97DDB1DE18EFF1E352D2C15B2A9BC33 /* EXPMatchers+beLessThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + E3E4EB4224D8C15DFC67F4FD3EF34E32 /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 741EDD04C8E9AC9B3074B26C300957A9 /* MASConstraint.m */; }; + E8AD769E477F1E7FADE2326F433ADB12 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B04567735EB424B8830838CCDDFB6B7 /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EA7CCE29307048D044A60D1F8D63D87A /* EXPMatchers+raise.h in Headers */ = {isa = PBXBuildFile; fileRef = 86C3D20E3852E93A705B38C87D44CF25 /* EXPMatchers+raise.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EE62D51B4F4A55731CCD546D25BA1064 /* NSValue+Expecta.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B4B8CBF384D897E9FDA56292461EF02 /* NSValue+Expecta.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + EED4D51267517F2D304C74540B6B0489 /* ExpectaSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = B0E3BFA20A42FAD25CBAA12003D88EA2 /* ExpectaSupport.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EF07E681556BC7689CCED3B38434F00E /* EXPMatchers+haveCountOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EA666C2D9E5F656BFCC3EB1E1DFC5F8 /* EXPMatchers+haveCountOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + F3D79EE95A53DC322C2F93551780FCC4 /* ExpectaObject.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E0F64D4FE0CE118C570076A9506D57 /* ExpectaObject.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F74BF06DBC15BB2A17E66943831132C2 /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A3D8587BC6DAB7EA6E4A343B23FBE2 /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + F7A9F53A68FF24600778D518BCD448F1 /* EXPMatchers+beFalsy.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B010F85FB7805073FD3A073341E97E2 /* EXPMatchers+beFalsy.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F7B19B68FAB73CB0732744B6A096D791 /* EXPDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 097C9C9334A54D561D4D91899DC6D0F5 /* EXPDefines.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F9E1C0898609C045246BD0E0C93E26B0 /* LayoutGuide+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = C487CB8F7B662AD21FB0ACDD409248EB /* LayoutGuide+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FAEC9B002AB74B29D9A108A1ECC67056 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = A1364BD8BFB3079E8AF6C124BC50E889 /* MASConstraint.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FC03EE048F70F1E14A2F78836CA26D49 /* EXPMatchers+raiseWithReason.m in Sources */ = {isa = PBXBuildFile; fileRef = B87562C8906C880E0B994BB48202735B /* EXPMatchers+raiseWithReason.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 3A31C048AC5B5E5AB145E49BF610B911 /* PBXContainerItemProxy */ = { + 72CE870760A45916E07816B4B7324986 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 46D68D26DCAAC4D999D549BA45F0B0EC; - remoteInfo = Expecta; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; + remoteInfo = Masonry; }; - 5E51BB7C485C3BB1001A7E9EF94414CF /* PBXContainerItemProxy */ = { + B75A0CE47F1335ADF22BFFE2CE4BC651 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 9DC8D9E02903E93BD0B2FEC9D846EA20; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; remoteInfo = Masonry; }; - AA5F0BBF6F9F116C791133368DE92755 /* PBXContainerItemProxy */ = { + C5E151CE4DDEA5E3770EDA456DE348CA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 9DC8D9E02903E93BD0B2FEC9D846EA20; + remoteGlobalIDString = DC371B7477C88184274EC6710690F97C; + remoteInfo = Expecta; + }; + D561D18B09F2A99E2E81DEC613CFDE0B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; remoteInfo = Masonry; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 01B7B1098F825865196B739BF9E36C04 /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSArray+MASAdditions.h"; sourceTree = ""; }; - 02DA3844CF514753E9CC1AE66A762D26 /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "View+MASAdditions.m"; sourceTree = ""; }; - 0341D10523364E42D0E6F9935E3DA6DE /* Pods-Masonry iOS Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Masonry iOS Tests-frameworks.sh"; sourceTree = ""; }; - 035F256E7A521234689F67B3EC887567 /* EXPUnsupportedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPUnsupportedObject.m; path = Expecta/EXPUnsupportedObject.m; sourceTree = ""; }; - 065A35D6EF149C4D848B49BAA59DAE1E /* EXPMatchers+postNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+postNotification.m"; path = "Expecta/Matchers/EXPMatchers+postNotification.m"; sourceTree = ""; }; - 0792517CDD83AC956FA10DA378F7C590 /* Pods-MasonryTestsLoader-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MasonryTestsLoader-resources.sh"; sourceTree = ""; }; - 0A28546AD6B1C73C384E28625120AED5 /* MASConstraintMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MASConstraintMaker.h; sourceTree = ""; }; - 0A3DE5BA9F1F1BFDC50FA062018A4FF9 /* EXPMatcherHelpers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcherHelpers.h; path = Expecta/Matchers/EXPMatcherHelpers.h; sourceTree = ""; }; - 0AAF8809A7BBA8A694825848A7EF07D2 /* EXPMatchers+beTruthy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beTruthy.h"; path = "Expecta/Matchers/EXPMatchers+beTruthy.h"; sourceTree = ""; }; - 0F2DF08BADAA0D595D88E9A5F2F4AE8F /* Pods-Masonry iOS Examples-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Masonry iOS Examples-dummy.m"; sourceTree = ""; }; - 10904D53FD27FC7E59BF92201687D517 /* EXPMatchers+beInTheRangeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInTheRangeOf.h"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.h"; sourceTree = ""; }; - 10A477660D2D97AEF58A6795020511A9 /* libPods-Masonry iOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Masonry iOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 10F0627165FE862DA384F755B45FD6A7 /* EXPMatchers+raise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raise.h"; path = "Expecta/Matchers/EXPMatchers+raise.h"; sourceTree = ""; }; - 10F25824C22E66EAFBAA5C0F62629D84 /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; }; - 122F547802BB911D1B9F0D52C33B568D /* EXPMatchers+beLessThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h"; sourceTree = ""; }; - 13852BA59629381181212D4693F5CEC8 /* EXPMatchers+raiseWithReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raiseWithReason.h"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.h"; sourceTree = ""; }; - 156873F42669378F00656904 /* View+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "View+MASShorthandAdditions.m"; sourceTree = ""; }; - 156873F52669378F00656904 /* LayoutGuide+MASAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASAdditions.m"; sourceTree = ""; }; - 156873F62669378F00656904 /* LayoutGuide+MASShorthandAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASShorthandAdditions.h"; sourceTree = ""; }; - 156873F72669378F00656904 /* NSArray+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+MASShorthandAdditions.m"; sourceTree = ""; }; - 156873F82669378F00656904 /* LayoutGuide+MASAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "LayoutGuide+MASAdditions.h"; sourceTree = ""; }; - 156873F92669378F00656904 /* MASUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MASUtilities.m; sourceTree = ""; }; - 156873FA2669378F00656904 /* LayoutGuide+MASShorthandAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "LayoutGuide+MASShorthandAdditions.m"; sourceTree = ""; }; - 190660A7B90AD2F0323CF9185E32C8D5 /* Expecta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-prefix.pch"; sourceTree = ""; }; - 194EE173246D25F2D7ED8C47FAF2ACF4 /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MASViewConstraint.h; sourceTree = ""; }; - 1B998D4CCC665C40E8A45CF07DFD7ABC /* Pods-Masonry iOS Examples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Examples.release.xcconfig"; sourceTree = ""; }; - 1C060BC1E7116BC87FA94B45087D771B /* ExpectaObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaObject.m; path = Expecta/ExpectaObject.m; sourceTree = ""; }; - 1C13229D7A9FD06FAA259C99FB5A6E11 /* Pods-Masonry iOS Examples-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Masonry iOS Examples-resources.sh"; sourceTree = ""; }; - 1D20E91754698E478D6D3E468D5EC2C8 /* EXPMatchers+beNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beNil.h"; path = "Expecta/Matchers/EXPMatchers+beNil.h"; sourceTree = ""; }; - 1F04D682D92E0B2B40FCE8BE214BDA61 /* EXPMatchers+beGreaterThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThan.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.h"; sourceTree = ""; }; - 1F1DE5E5E11E91062A5DA859EDCE3C49 /* EXPUnsupportedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPUnsupportedObject.h; path = Expecta/EXPUnsupportedObject.h; sourceTree = ""; }; - 1F4C6FD0E96DEE3BA24A38BA86A2EE83 /* EXPMatchers+beKindOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beKindOf.m"; path = "Expecta/Matchers/EXPMatchers+beKindOf.m"; sourceTree = ""; }; - 1FD8638DC7137054523DFDCD37576559 /* EXPMatchers+beCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beCloseTo.h"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.h"; sourceTree = ""; }; - 2251A125FE1F9EE61891B85AAAE71511 /* EXPMatchers+beNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beNil.m"; path = "Expecta/Matchers/EXPMatchers+beNil.m"; sourceTree = ""; }; - 228937A58D5E1EF34C595366A42C018E /* EXPMatchers+raiseWithReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raiseWithReason.m"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.m"; sourceTree = ""; }; - 2547652506D61F49D4B0882ED6B64B16 /* EXPMatchers+beFalsy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beFalsy.m"; path = "Expecta/Matchers/EXPMatchers+beFalsy.m"; sourceTree = ""; }; - 2A31938A554F154B402756FCBFE7167B /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSArray+MASAdditions.m"; sourceTree = ""; }; - 2A7DB9040882B1058689C275628BAD96 /* libExpecta.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libExpecta.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 2B6A8C9B5A40329ADEFB0567ED8489DC /* libMasonry.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMasonry.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 2B80588779A2286A5E054DE4D0DDC03A /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "View+MASShorthandAdditions.h"; sourceTree = ""; }; - 2C5D45C77F469660C6D6155EA159784F /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; }; - 2F3869A1E846595FC8A567E9EF91600E /* EXPMatchers+beSupersetOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSupersetOf.h"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.h"; sourceTree = ""; }; - 34177F23961DA5ABF45170FA2037F8C1 /* EXPMatchers+beginWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beginWith.m"; path = "Expecta/Matchers/EXPMatchers+beginWith.m"; sourceTree = ""; }; - 358E8501C72A8B4A191589A7570FCC15 /* NSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSLayoutConstraint+MASDebugAdditions.m"; sourceTree = ""; }; - 3683CAB8F5A6384907767DF9817A4B09 /* View+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "View+MASAdditions.h"; sourceTree = ""; }; - 3ABABA36A05ECCDA76F9388C3A7262E8 /* Pods-Masonry iOS Examples-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Masonry iOS Examples-acknowledgements.plist"; sourceTree = ""; }; - 3B014C13318B98A27EB6C15EB341678A /* EXPMatchers+beInTheRangeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInTheRangeOf.m"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.m"; sourceTree = ""; }; - 3D0C38F1CACBCE8726531E82CF48BE6A /* Pods-Masonry iOS Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Masonry iOS Tests-acknowledgements.plist"; sourceTree = ""; }; - 40B4963257702BBD9CAF03BECB9D16F0 /* Pods-MasonryTestsLoader-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MasonryTestsLoader-dummy.m"; sourceTree = ""; }; - 41073685DCEF4DD54806A297165DB39F /* Pods-MasonryTestsLoader.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MasonryTestsLoader.debug.xcconfig"; sourceTree = ""; }; - 44127DD3F6457EEB52F5B0B644C748E5 /* EXPMatchers+contain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+contain.h"; path = "Expecta/Matchers/EXPMatchers+contain.h"; sourceTree = ""; }; - 4730731B518BAFE15142AA613F01F2EB /* ExpectaObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaObject.h; path = Expecta/ExpectaObject.h; sourceTree = ""; }; - 481E644C11C98774BE98309BA0A2CB6C /* EXPMatchers+beFalsy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beFalsy.h"; path = "Expecta/Matchers/EXPMatchers+beFalsy.h"; sourceTree = ""; }; - 489F09523F5700F4F414FA98E0BDEEE4 /* Expecta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Expecta.xcconfig; sourceTree = ""; }; - 48FB054B1F997F66CA0E17DB3B26223C /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MASConstraint+Private.h"; sourceTree = ""; }; - 49E1D663D9B2CCDFFC739982A06D57C5 /* EXPMatchers+beginWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beginWith.h"; path = "Expecta/Matchers/EXPMatchers+beginWith.h"; sourceTree = ""; }; - 4AF06A246FC5C7C1E779C3BFB883040C /* NSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSLayoutConstraint+MASDebugAdditions.h"; sourceTree = ""; }; - 4B6B3284B56CCD1FFA3F49D1751D4763 /* Pods-MasonryTestsLoader-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MasonryTestsLoader-acknowledgements.markdown"; sourceTree = ""; }; - 4EEA345137E6F1B86DEC1ECEA04BEBD5 /* EXPFloatTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPFloatTuple.m; path = Expecta/EXPFloatTuple.m; sourceTree = ""; }; - 50660A3CB85C3AEC478DB2211E3CD76D /* Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Expecta.h; path = Expecta/Expecta.h; sourceTree = ""; }; - 5478FCE860D549499E9B142210C4E612 /* Pods-Masonry iOS Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Masonry iOS Tests-dummy.m"; sourceTree = ""; }; - 55CDC4616612ED7AA50A3E836E82B6BE /* EXPBlockDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPBlockDefinedMatcher.h; path = Expecta/EXPBlockDefinedMatcher.h; sourceTree = ""; }; - 56B7202FE09B3976D80FD78EF63258F6 /* EXPMatchers+beTruthy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beTruthy.m"; path = "Expecta/Matchers/EXPMatchers+beTruthy.m"; sourceTree = ""; }; - 57E3007D6F08B4F287C35811E372C9D8 /* EXPBlockDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPBlockDefinedMatcher.m; path = Expecta/EXPBlockDefinedMatcher.m; sourceTree = ""; }; - 58004526F7F7D8C02F9C425D2847EA60 /* Pods-Masonry iOS Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Masonry iOS Tests-resources.sh"; sourceTree = ""; }; - 585243F6624B3378D0DA0CF280D9F8EA /* Masonry-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Masonry-dummy.m"; sourceTree = ""; }; - 590084C07434815AE5BEC2E76CD54154 /* Pods-Masonry iOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Tests.release.xcconfig"; sourceTree = ""; }; - 593CB40473F1E441BC65F0044379DA72 /* NSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSArray+MASShorthandAdditions.h"; sourceTree = ""; }; - 59623D6FE7CFF9076F3ACA8D492A0A1E /* EXPMatchers+beGreaterThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h"; sourceTree = ""; }; - 5A30D7435201DE311E06A35CEA390581 /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ViewController+MASAdditions.m"; sourceTree = ""; }; - 5B9D165EC173241B2C9EFF6FDB72491D /* EXPMatchers+beInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInstanceOf.h"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.h"; sourceTree = ""; }; - 5C71CEC9EB6A0B127237D9BE7AAB6081 /* EXPMatchers+beInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInstanceOf.m"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.m"; sourceTree = ""; }; - 5D2BB147FD43518883D32412C882B443 /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MASUtilities.h; sourceTree = ""; }; - 5EEECBC2AC825C5498273AB762F561EF /* EXPMatchers+endWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+endWith.h"; path = "Expecta/Matchers/EXPMatchers+endWith.h"; sourceTree = ""; }; - 61A4675B57359AB9653085CE195438A0 /* EXPMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatchers.h; path = Expecta/Matchers/EXPMatchers.h; sourceTree = ""; }; - 639FB58CFFC214FCCF32C06B0ACC9B5B /* Masonry-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-prefix.pch"; sourceTree = ""; }; - 63BB2BA348CAEB74A836E775BF8ABE2C /* EXPFloatTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPFloatTuple.h; path = Expecta/EXPFloatTuple.h; sourceTree = ""; }; - 663B481626C7E7C19A7A42120FFC0E77 /* EXPMatchers+haveCountOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+haveCountOf.m"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.m"; sourceTree = ""; }; - 67872159D235C01079FD18A895BC35BE /* Pods-Masonry iOS Examples-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Masonry iOS Examples-acknowledgements.markdown"; sourceTree = ""; }; - 687D54A17077AB5A8B750650CACBF3B3 /* EXPMatchers+beIdenticalTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beIdenticalTo.m"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.m"; sourceTree = ""; }; - 6CBE98CC00A3DD78FC850D713EB164BE /* MASLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MASLayoutConstraint.h; sourceTree = ""; }; - 6F83FB50741120EF2F5F9723A76C9099 /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ViewController+MASAdditions.h"; sourceTree = ""; }; - 7559C19053134AD8CF9C91D122AC2090 /* Pods-Masonry iOS Examples-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Masonry iOS Examples-frameworks.sh"; sourceTree = ""; }; - 75992ED787187D30BE4B5F69BEF5EE30 /* EXPMatchers+haveCountOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+haveCountOf.h"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.h"; sourceTree = ""; }; - 7735CC4570D0C643EF99240D43284C4A /* EXPExpect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPExpect.h; path = Expecta/EXPExpect.h; sourceTree = ""; }; - 7A54ADC5F5885AE49835C21390D7B42C /* MASViewConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MASViewConstraint.m; sourceTree = ""; }; - 7B14D8EAF812AD82BC8BA17C3DE5B573 /* EXPMatchers+beLessThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.m"; sourceTree = ""; }; - 7BD870522AC013353A13269A9CDEA664 /* EXPMatcherHelpers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPMatcherHelpers.m; path = Expecta/Matchers/EXPMatcherHelpers.m; sourceTree = ""; }; - 7C9A0D7E24E5DCE2B938FC4C4901B353 /* EXPMatchers+beGreaterThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.m"; sourceTree = ""; }; - 7EBF9BAD2F54920E12BA8D79EB3EE01C /* EXPDoubleTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPDoubleTuple.m; path = Expecta/EXPDoubleTuple.m; sourceTree = ""; }; - 7F338BE8E88D6EB9496878863145B7C5 /* EXPDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDefines.h; path = Expecta/EXPDefines.h; sourceTree = ""; }; - 80708E2496B3C69452E559E575CD1D47 /* ExpectaSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaSupport.h; path = Expecta/ExpectaSupport.h; sourceTree = ""; }; - 8140BF73F39AA0E15893403B6B2DCD9D /* EXPMatchers+beLessThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThan.h"; path = "Expecta/Matchers/EXPMatchers+beLessThan.h"; sourceTree = ""; }; - 82F3CFD18ABD64DD8E88230EE43D854A /* NSValue+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValue+Expecta.h"; path = "Expecta/NSValue+Expecta.h"; sourceTree = ""; }; - 8524B32277BDB7E1A36FB5F3EB3BAC6B /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MASCompositeConstraint.m; sourceTree = ""; }; - 8780C4CC76E68DD8EA97F0E4B3287D64 /* EXPMatchers+equal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+equal.h"; path = "Expecta/Matchers/EXPMatchers+equal.h"; sourceTree = ""; }; - 88907F8AEA4C9B20AEB63E2047F54502 /* EXPMatchers+match.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+match.h"; path = "Expecta/Matchers/EXPMatchers+match.h"; sourceTree = ""; }; - 8B4562385452B8EF12C3E0EFC2E07D12 /* libPods-Masonry iOS Examples.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Masonry iOS Examples.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8F3B66464C8F4DC1EDFFEA58A98F9B5C /* EXPMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcher.h; path = Expecta/EXPMatcher.h; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9616A699420336DD8F227A5C41E36432 /* EXPMatchers+respondTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+respondTo.m"; path = "Expecta/Matchers/EXPMatchers+respondTo.m"; sourceTree = ""; }; - 98AFDA78C0BA149C8976CF3889419AA7 /* EXPMatchers+beSubclassOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSubclassOf.m"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.m"; sourceTree = ""; }; - 9D1DE5A0855C3142FCDE4471717B4C92 /* EXPMatchers+raise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raise.m"; path = "Expecta/Matchers/EXPMatchers+raise.m"; sourceTree = ""; }; - 9F34293A1C0AD9FD7013D79B910FE7E5 /* MASConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MASConstraint.h; sourceTree = ""; }; - AD6D89D8C414349AAD70BD448A0EB42D /* Pods-MasonryTestsLoader.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MasonryTestsLoader.release.xcconfig"; sourceTree = ""; }; - ADBF0443B4181A4D41268AB9F62AA73C /* NSValue+Expecta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+Expecta.m"; path = "Expecta/NSValue+Expecta.m"; sourceTree = ""; }; - AE58747F7ED5EE1564AC83C82F3C9DEA /* MASViewAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MASViewAttribute.h; sourceTree = ""; }; - AEDF716CFA2F6ADA12E2C6D67EF8B2D2 /* EXPDoubleTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDoubleTuple.h; path = Expecta/EXPDoubleTuple.h; sourceTree = ""; }; - AEEF83956F9DBD675F4C2EF46B690567 /* MASConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MASConstraint.m; sourceTree = ""; }; - B1B09BEB8A5DCEEF709CBA1F5CEE0B3B /* EXPMatchers+beGreaterThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThan.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.m"; sourceTree = ""; }; - B20D7BAA1D4E85394D4C0BCBCB2BF960 /* EXPMatchers+endWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+endWith.m"; path = "Expecta/Matchers/EXPMatchers+endWith.m"; sourceTree = ""; }; - BB267133DB0AAEF96D19D2085B85E06D /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MASViewAttribute.m; sourceTree = ""; }; - BF54E13A05CB850F6732BED53C409DF8 /* Pods-Masonry iOS Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Masonry iOS Tests-acknowledgements.markdown"; sourceTree = ""; }; - BFE37A3BBF6AEB4B7163AAE1BD655CDD /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; }; - C0F0C9DE4D36C0025D1A49B0106644A4 /* NSObject+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Expecta.h"; path = "Expecta/NSObject+Expecta.h"; sourceTree = ""; }; - C3EDF7B170EC221838CC2A773B0CDC59 /* EXPMatchers+beCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beCloseTo.m"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.m"; sourceTree = ""; }; - C4EC8E6D70CF2CC9E094524A6560BC80 /* libPods-MasonryTestsLoader.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MasonryTestsLoader.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - C565C77B7F3AC98E871994970653A958 /* EXPMatchers+conformTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+conformTo.m"; path = "Expecta/Matchers/EXPMatchers+conformTo.m"; sourceTree = ""; }; - C5ABB1C6CB3F9F99597CCF6727731A7B /* Pods-Masonry iOS Examples.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Examples.debug.xcconfig"; sourceTree = ""; }; - C7004C5DD5811F3431B3C72C3ED02D96 /* Pods-MasonryTestsLoader-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-MasonryTestsLoader-frameworks.sh"; sourceTree = ""; }; - C98931A95CEDDC4098458BEB8FF864ED /* EXPMatchers+beIdenticalTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beIdenticalTo.h"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.h"; sourceTree = ""; }; - CBEA9FE72B61C2E594B205165A09ECA7 /* EXPExpect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPExpect.m; path = Expecta/EXPExpect.m; sourceTree = ""; }; - CBFE4C2A8558AE9FF24FCA67343113E2 /* EXPMatchers+beSubclassOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSubclassOf.h"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.h"; sourceTree = ""; }; - D17CA42B2DBD2AB2BBA3CBB7E2205968 /* Masonry.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.xcconfig; sourceTree = ""; }; - D242BA4F2D8595007967657C3EBF92CE /* EXPMatchers+respondTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+respondTo.h"; path = "Expecta/Matchers/EXPMatchers+respondTo.h"; sourceTree = ""; }; - D50A0454EC2ACA566EC1A84F70DBE96A /* Expecta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta-dummy.m"; sourceTree = ""; }; - D8A10F7BEA143532312B95447C5A5B7C /* ExpectaSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaSupport.m; path = Expecta/ExpectaSupport.m; sourceTree = ""; }; - DB37BB623433F136572448D26D6FB70A /* EXPMatchers+contain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+contain.m"; path = "Expecta/Matchers/EXPMatchers+contain.m"; sourceTree = ""; }; - DBCE4AE4A77A457256CB505688569B23 /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MASLayoutConstraint.m; sourceTree = ""; }; - DD2917440B958D545CC2EE8F2240D37E /* EXPMatchers+beSupersetOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSupersetOf.m"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.m"; sourceTree = ""; }; - DDF04AEFCC4B011565BFFBFFF52B2FCE /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - DE147446A1225BA68EA82615B1436CC1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - E1DAB7DBD1812988117194D50ACE07A0 /* EXPMatchers+beKindOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beKindOf.h"; path = "Expecta/Matchers/EXPMatchers+beKindOf.h"; sourceTree = ""; }; - E2824F3F718434AEC2CE23045FEC5541 /* Pods-MasonryTestsLoader-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MasonryTestsLoader-acknowledgements.plist"; sourceTree = ""; }; - E2D9897D646E2BB9FBF73704C04440B2 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - E36B444420761FDAD709E0D161F812C1 /* EXPMatchers+conformTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+conformTo.h"; path = "Expecta/Matchers/EXPMatchers+conformTo.h"; sourceTree = ""; }; - E4CFDB3889CFAC5E05497101D3F82C0A /* EXPMatchers+beLessThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThan.m"; path = "Expecta/Matchers/EXPMatchers+beLessThan.m"; sourceTree = ""; }; - E66C1687519434878576CA9CA479B868 /* MASCompositeConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MASCompositeConstraint.h; sourceTree = ""; }; - EB9E853361218FD2866DABF9A3E384D5 /* MASConstraintMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MASConstraintMaker.m; sourceTree = ""; }; - EF1B79566A439B7A68A81F499EBFDDE1 /* Pods-Masonry iOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Tests.debug.xcconfig"; sourceTree = ""; }; - FC8A8F10966AF0D4BEF49EBF2CFF4C0C /* Masonry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = Masonry.h; sourceTree = ""; }; + 02EEB3D513AE4127353434103F20DF7A /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASAdditions.m"; path = "Masonry/View+MASAdditions.m"; sourceTree = ""; }; + 034FBFCB448F9D15F7570093A95EF0C2 /* libPods-Masonry iOS Examples.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Masonry iOS Examples.a"; path = "libPods-Masonry iOS Examples.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0414F8191399724707CC515B23938266 /* EXPMatchers+contain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+contain.h"; path = "Expecta/Matchers/EXPMatchers+contain.h"; sourceTree = ""; }; + 070DD0B5FF3AEC96294E28E7546898E3 /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; }; + 078F70BA7D353AFB208803CB51C4358A /* Pods-Masonry iOS Examples.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Examples.debug.xcconfig"; sourceTree = ""; }; + 08F7F0770B4878B9883B87DCD8569CB4 /* libExpecta.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libExpecta.a; path = libExpecta.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 097C9C9334A54D561D4D91899DC6D0F5 /* EXPDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDefines.h; path = Expecta/EXPDefines.h; sourceTree = ""; }; + 0A2355A7FF831E92E2450625F2701398 /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewAttribute.m; path = Masonry/MASViewAttribute.m; sourceTree = ""; }; + 0B699617FD75A57FEAE1EDBA21B04F11 /* Pods-MasonryTestsLoader-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-MasonryTestsLoader-acknowledgements.plist"; sourceTree = ""; }; + 0BF8087A416A7EB3F95BECB53A82AE7F /* EXPMatchers+postNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+postNotification.m"; path = "Expecta/Matchers/EXPMatchers+postNotification.m"; sourceTree = ""; }; + 0EAC10A91468BFB1107398DCBD3671CB /* EXPUnsupportedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPUnsupportedObject.m; path = Expecta/EXPUnsupportedObject.m; sourceTree = ""; }; + 0EB461EE218697A6B792EE827934B5E0 /* EXPMatchers+endWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+endWith.m"; path = "Expecta/Matchers/EXPMatchers+endWith.m"; sourceTree = ""; }; + 109B3FC0CAC2B4FD7E9BC1B1174C4152 /* Masonry.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.release.xcconfig; sourceTree = ""; }; + 10AA62639EDB09AE916B3DD8AAD36DC3 /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASShorthandAdditions.h"; path = "Masonry/View+MASShorthandAdditions.h"; sourceTree = ""; }; + 17242E03658EDAE3CC8E0FFA33C92566 /* libPods-Masonry iOS Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-Masonry iOS Tests.a"; path = "libPods-Masonry iOS Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1735ABCBAE67332541684FB30FE21FDF /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLayoutConstraint.m; path = Masonry/MASLayoutConstraint.m; sourceTree = ""; }; + 1B6CD575CEFDAC7E72EFE1A907057FB9 /* EXPMatchers+beTruthy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beTruthy.h"; path = "Expecta/Matchers/EXPMatchers+beTruthy.h"; sourceTree = ""; }; + 1EDF2951F01474822E0E8F9EB76143A5 /* EXPMatchers+beSubclassOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSubclassOf.h"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.h"; sourceTree = ""; }; + 1FFED36A657123030ABB700256D73F15 /* libMasonry.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libMasonry.a; path = libMasonry.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 2287AC47D72FED8A0AFDC9B7EBE176EC /* ExpectaObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaObject.m; path = Expecta/ExpectaObject.m; sourceTree = ""; }; + 25615882305B886DDE423AE5E03DF5CB /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASConstraint+Private.h"; path = "Masonry/MASConstraint+Private.h"; sourceTree = ""; }; + 28F25B1BD3C8C2239E421AF5DBAFFCC3 /* Masonry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Masonry.h; path = Masonry/Masonry.h; sourceTree = ""; }; + 299ABE997F6723183C584B121F94415E /* Pods-MasonryTestsLoader-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MasonryTestsLoader-dummy.m"; sourceTree = ""; }; + 2AD8B96FC6EA509C6208FBBD04895018 /* EXPMatchers+beSubclassOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSubclassOf.m"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.m"; sourceTree = ""; }; + 2B4B8CBF384D897E9FDA56292461EF02 /* NSValue+Expecta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+Expecta.m"; path = "Expecta/NSValue+Expecta.m"; sourceTree = ""; }; + 2D07A6AA6C9E025EE07A84762AFCFA0C /* Pods-Masonry iOS Examples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Examples.release.xcconfig"; sourceTree = ""; }; + 30933C59CA21076A391BAAAB4AD2CD4C /* MASCompositeConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASCompositeConstraint.h; path = Masonry/MASCompositeConstraint.h; sourceTree = ""; }; + 3363C5068ED635F923E73ABFAC14E437 /* Pods-Masonry iOS Examples-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Masonry iOS Examples-acknowledgements.markdown"; sourceTree = ""; }; + 33D751850CDEDE02F7ABFACA6610FDC9 /* View+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASAdditions.h"; path = "Masonry/View+MASAdditions.h"; sourceTree = ""; }; + 37BB8D352222CE40BC119089DA9D26C1 /* Expecta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta-dummy.m"; sourceTree = ""; }; + 37C9A4075B3D6A87244FD6442E426342 /* Expecta.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Expecta.release.xcconfig; sourceTree = ""; }; + 3967033705D28226FDBC02F4EF3D832D /* MASViewAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewAttribute.h; path = Masonry/MASViewAttribute.h; sourceTree = ""; }; + 40510E8BC036FFDDF98EB28362EEFCEC /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASAdditions.h"; path = "Masonry/NSArray+MASAdditions.h"; sourceTree = ""; }; + 40848C0C12BFC3FFF04BA34DE0CFEDE1 /* EXPDoubleTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDoubleTuple.h; path = Expecta/EXPDoubleTuple.h; sourceTree = ""; }; + 4208F20FBB51E24C0035B0A9043519E5 /* EXPMatchers+raise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raise.m"; path = "Expecta/Matchers/EXPMatchers+raise.m"; sourceTree = ""; }; + 4264D1B3E3017D85F1079D57BDF5A1D8 /* EXPUnsupportedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPUnsupportedObject.h; path = Expecta/EXPUnsupportedObject.h; sourceTree = ""; }; + 42A6E443D42C1EE234A2449E3F370942 /* EXPExpect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPExpect.h; path = Expecta/EXPExpect.h; sourceTree = ""; }; + 4324340906222BC4D70B66CC607CE6EE /* EXPFloatTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPFloatTuple.h; path = Expecta/EXPFloatTuple.h; sourceTree = ""; }; + 43836DE8E97F5392C276F30B8D7AD514 /* EXPMatchers+beGreaterThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h"; sourceTree = ""; }; + 43A67C92FB8A7592CBCE09307DA01AF0 /* EXPMatchers+conformTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+conformTo.m"; path = "Expecta/Matchers/EXPMatchers+conformTo.m"; sourceTree = ""; }; + 4448FECF990760A568B005012B766C32 /* EXPMatchers+beIdenticalTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beIdenticalTo.m"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.m"; sourceTree = ""; }; + 4512CC9B9209948D1320D1A93879F65F /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewConstraint.h; path = Masonry/MASViewConstraint.h; sourceTree = ""; }; + 47F0F62DAA372493A08D04CE3637FBD9 /* Masonry.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Masonry.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 48110E19BBB54C5CA27DE1EBA62F7562 /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ViewController+MASAdditions.m"; path = "Masonry/ViewController+MASAdditions.m"; sourceTree = ""; }; + 4C6A4D44BC66DA17B7398BFA64ADC39A /* Pods-Masonry iOS Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Tests.release.xcconfig"; sourceTree = ""; }; + 4E8B1FF46411CDB71C0D319565D34343 /* MASUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASUtilities.m; path = Masonry/MASUtilities.m; sourceTree = ""; }; + 541464FB5D516499DF0360723BD4BB7C /* EXPFloatTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPFloatTuple.m; path = Expecta/EXPFloatTuple.m; sourceTree = ""; }; + 5AA7AE2F6519C01A858AA56ADC6C0118 /* EXPMatchers+beFalsy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beFalsy.m"; path = "Expecta/Matchers/EXPMatchers+beFalsy.m"; sourceTree = ""; }; + 5C9BFB46434107BF7B2A364929A9075F /* EXPMatchers+respondTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+respondTo.h"; path = "Expecta/Matchers/EXPMatchers+respondTo.h"; sourceTree = ""; }; + 5CC7208CF5DD688411DE1074CD347C34 /* Masonry-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-prefix.pch"; sourceTree = ""; }; + 5D7E76599E0A16881905020078431451 /* EXPExpect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPExpect.m; path = Expecta/EXPExpect.m; sourceTree = ""; }; + 6173CC31C10F0050D31733615599B090 /* EXPMatchers+contain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+contain.m"; path = "Expecta/Matchers/EXPMatchers+contain.m"; sourceTree = ""; }; + 66DF1607BF8FFF84DD6639E94DE88378 /* EXPMatchers+beLessThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h"; sourceTree = ""; }; + 66F3282D196FCB866C87A63E1210D189 /* Pods-Masonry iOS Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Masonry iOS Tests-acknowledgements.markdown"; sourceTree = ""; }; + 69E0E543DB95F5EF77C15AA13AB54C95 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 6A49105F3076B160126FA5F97C1C3C12 /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASCompositeConstraint.m; path = Masonry/MASCompositeConstraint.m; sourceTree = ""; }; + 6B010F85FB7805073FD3A073341E97E2 /* EXPMatchers+beFalsy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beFalsy.h"; path = "Expecta/Matchers/EXPMatchers+beFalsy.h"; sourceTree = ""; }; + 6B6580C52FB3F2F65EEF0CECF613374E /* EXPMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcher.h; path = Expecta/EXPMatcher.h; sourceTree = ""; }; + 6DB89D24ECB0566107D944096312C3FA /* Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Expecta.h; path = Expecta/Expecta.h; sourceTree = ""; }; + 6E2F6452C6FBF7416CC1FDCA290F5E96 /* Pods-MasonryTestsLoader.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MasonryTestsLoader.debug.xcconfig"; sourceTree = ""; }; + 6F988A27369666BDE47CDB2B6C809945 /* EXPMatcherHelpers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPMatcherHelpers.m; path = Expecta/Matchers/EXPMatcherHelpers.m; sourceTree = ""; }; + 70EA2CAC52167DA57CEEEA6F37C6D3AD /* View+MASShorthandAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASShorthandAdditions.m"; path = "Masonry/View+MASShorthandAdditions.m"; sourceTree = ""; }; + 7340210602BDFD1CA8C7535091837F6C /* EXPMatchers+raiseWithReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raiseWithReason.h"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.h"; sourceTree = ""; }; + 741EDD04C8E9AC9B3074B26C300957A9 /* MASConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraint.m; path = Masonry/MASConstraint.m; sourceTree = ""; }; + 74DF6E1ECAB984700147F9BA24F206B3 /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ViewController+MASAdditions.h"; path = "Masonry/ViewController+MASAdditions.h"; sourceTree = ""; }; + 769D2BD9A360398965D078254446EE92 /* EXPMatchers+beInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInstanceOf.m"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.m"; sourceTree = ""; }; + 7C47D35BD16CD8E62D1ADDE116711C6D /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 7EA666C2D9E5F656BFCC3EB1E1DFC5F8 /* EXPMatchers+haveCountOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+haveCountOf.m"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.m"; sourceTree = ""; }; + 803A15B8EC7FC56D120C016A7B89BBCC /* EXPMatchers+beSupersetOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSupersetOf.h"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.h"; sourceTree = ""; }; + 8076E486DC7258AC955A834960FE452D /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASUtilities.h; path = Masonry/MASUtilities.h; sourceTree = ""; }; + 82027158F59D887F35B18901C0012EDE /* EXPMatchers+equal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+equal.h"; path = "Expecta/Matchers/EXPMatchers+equal.h"; sourceTree = ""; }; + 829FE3CD93FECE6DA8F960BECA7004DB /* EXPMatchers+beInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInstanceOf.h"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.h"; sourceTree = ""; }; + 82C52D4DED5698D760C6C085693FFE20 /* Pods-Masonry iOS Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Masonry iOS Tests.debug.xcconfig"; sourceTree = ""; }; + 854B390E1F4E5BB07C6CFA25B7691D16 /* ExpectaSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaSupport.m; path = Expecta/ExpectaSupport.m; sourceTree = ""; }; + 86C3D20E3852E93A705B38C87D44CF25 /* EXPMatchers+raise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raise.h"; path = "Expecta/Matchers/EXPMatchers+raise.h"; sourceTree = ""; }; + 86F3DEAD3699B41D07009E64FE392FBF /* EXPMatchers+beCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beCloseTo.m"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.m"; sourceTree = ""; }; + 87B08263B34CC746FC1645359B11B5D3 /* EXPMatchers+beGreaterThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.m"; sourceTree = ""; }; + 8A87D3A7AB8CCF25E87BFA76CAB7CAA8 /* Pods-Masonry iOS Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Masonry iOS Tests-dummy.m"; sourceTree = ""; }; + 8B04567735EB424B8830838CCDDFB6B7 /* NSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+MASDebugAdditions.h"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.h"; sourceTree = ""; }; + 8EAF619D343CBB1CF3B7401F31AEE720 /* EXPMatchers+beGreaterThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThan.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.h"; sourceTree = ""; }; + 8F3E3D128DE2E8B3AC4885CEE00FCD05 /* EXPMatchers+beKindOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beKindOf.m"; path = "Expecta/Matchers/EXPMatchers+beKindOf.m"; sourceTree = ""; }; + 933C56887CDDDBE0D8B572C8C77FF0CA /* NSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASShorthandAdditions.h"; path = "Masonry/NSArray+MASShorthandAdditions.h"; sourceTree = ""; }; + 94E012777A2AE21B882A02354D0DF491 /* EXPMatchers+beIdenticalTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beIdenticalTo.h"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.h"; sourceTree = ""; }; + 958492CF9426E7CDA2B714635BEA9477 /* Pods-MasonryTestsLoader-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-MasonryTestsLoader-acknowledgements.markdown"; sourceTree = ""; }; + 96D9849E582F23269E90480BB21226BF /* Pods-Masonry iOS Examples-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Masonry iOS Examples-acknowledgements.plist"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9EAC4DB7F4781EFDF9CAEE010CE316A9 /* EXPMatchers+beGreaterThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThan.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.m"; sourceTree = ""; }; + 9F77CE96F3DAB41E69EE8BB9050E257F /* MASConstraintMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraintMaker.h; path = Masonry/MASConstraintMaker.h; sourceTree = ""; }; + A10F1DEA5080C60C5317CFFF97E16F32 /* EXPDoubleTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPDoubleTuple.m; path = Expecta/EXPDoubleTuple.m; sourceTree = ""; }; + A1364BD8BFB3079E8AF6C124BC50E889 /* MASConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraint.h; path = Masonry/MASConstraint.h; sourceTree = ""; }; + A2FFDEE02AC253C0F7D76BE7E3F32CAE /* EXPMatchers+match.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+match.h"; path = "Expecta/Matchers/EXPMatchers+match.h"; sourceTree = ""; }; + A32849E7FB9B4BC1FB808FC936C98713 /* NSArray+MASShorthandAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MASShorthandAdditions.m"; path = "Masonry/NSArray+MASShorthandAdditions.m"; sourceTree = ""; }; + A42A1FB895801BDD4E5B7B57B0A05104 /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; }; + A5716C1E8A1774B13BE9A33DC8D68EE7 /* Masonry-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Masonry-dummy.m"; sourceTree = ""; }; + A5E5EBA381830646070498CBB04C9A0F /* libPods-MasonryTestsLoader.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-MasonryTestsLoader.a"; path = "libPods-MasonryTestsLoader.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + A7A3D8587BC6DAB7EA6E4A343B23FBE2 /* EXPMatchers+beSupersetOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSupersetOf.m"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.m"; sourceTree = ""; }; + AA05135B80F02BA708E584BE93EAE509 /* EXPMatchers+beInTheRangeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInTheRangeOf.m"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.m"; sourceTree = ""; }; + AD63EC1E37D24355FE834107F62FAF98 /* EXPMatchers+beTruthy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beTruthy.m"; path = "Expecta/Matchers/EXPMatchers+beTruthy.m"; sourceTree = ""; }; + ADA29C9A8015D8D396B189B38E04D822 /* Expecta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-prefix.pch"; sourceTree = ""; }; + AEEA81685BED00CA2D08644B3D992447 /* EXPMatchers+beInTheRangeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInTheRangeOf.h"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.h"; sourceTree = ""; }; + B0A615E519E5DEE91A404198AE2BFF8C /* EXPMatchers+conformTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+conformTo.h"; path = "Expecta/Matchers/EXPMatchers+conformTo.h"; sourceTree = ""; }; + B0E3BFA20A42FAD25CBAA12003D88EA2 /* ExpectaSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaSupport.h; path = Expecta/ExpectaSupport.h; sourceTree = ""; }; + B0EE972E8F932B04E66E65DE82870717 /* MASConstraintMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraintMaker.m; path = Masonry/MASConstraintMaker.m; sourceTree = ""; }; + B1E0F64D4FE0CE118C570076A9506D57 /* ExpectaObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaObject.h; path = Expecta/ExpectaObject.h; sourceTree = ""; }; + B394FB6D49FAF7FAD8D13D36456DC71E /* LayoutGuide+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LayoutGuide+MASAdditions.m"; path = "Masonry/LayoutGuide+MASAdditions.m"; sourceTree = ""; }; + B5D8B3763578E6D0CC56EDAD33A2903A /* NSValue+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValue+Expecta.h"; path = "Expecta/NSValue+Expecta.h"; sourceTree = ""; }; + B60F53F110FEC4A9658F125EC15D6948 /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; }; + B61415DCBA8E999175788DC91B459287 /* MASViewConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewConstraint.m; path = Masonry/MASViewConstraint.m; sourceTree = ""; }; + B753A37B576884F5FADB6E1C7BEA5013 /* EXPBlockDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPBlockDefinedMatcher.h; path = Expecta/EXPBlockDefinedMatcher.h; sourceTree = ""; }; + B87562C8906C880E0B994BB48202735B /* EXPMatchers+raiseWithReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raiseWithReason.m"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.m"; sourceTree = ""; }; + B8ECC452F75A277850F64A0E33F274C5 /* EXPMatchers+beNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beNil.m"; path = "Expecta/Matchers/EXPMatchers+beNil.m"; sourceTree = ""; }; + B9BACCCDCCC9968B937326B37EB3B557 /* Pods-Masonry iOS Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Masonry iOS Tests-acknowledgements.plist"; sourceTree = ""; }; + BBC072082F2C1B0D3CFDE03BBBCFD125 /* NSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+MASDebugAdditions.m"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.m"; sourceTree = ""; }; + BD8B0206EA620497EDB7CAFA9EDC7B95 /* EXPMatchers+beKindOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beKindOf.h"; path = "Expecta/Matchers/EXPMatchers+beKindOf.h"; sourceTree = ""; }; + C216D527A6F209AB9AAD544000E63427 /* EXPMatchers+beCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beCloseTo.h"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.h"; sourceTree = ""; }; + C487CB8F7B662AD21FB0ACDD409248EB /* LayoutGuide+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LayoutGuide+MASShorthandAdditions.h"; path = "Masonry/LayoutGuide+MASShorthandAdditions.h"; sourceTree = ""; }; + C72BD4201E0FB72BE43A4CBBAE69E443 /* EXPMatchers+beginWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beginWith.m"; path = "Expecta/Matchers/EXPMatchers+beginWith.m"; sourceTree = ""; }; + C97DDB1DE18EFF1E352D2C15B2A9BC33 /* EXPMatchers+beLessThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThan.m"; path = "Expecta/Matchers/EXPMatchers+beLessThan.m"; sourceTree = ""; }; + CA4DCA67ABD5C5D5A881EECB095C616C /* EXPMatchers+beLessThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThan.h"; path = "Expecta/Matchers/EXPMatchers+beLessThan.h"; sourceTree = ""; }; + D11D1CDDEDFF327522CA54BE7DF33771 /* EXPMatchers+haveCountOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+haveCountOf.h"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.h"; sourceTree = ""; }; + D3EC2F097AEE540C90EAC265773EDA85 /* EXPMatchers+beNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beNil.h"; path = "Expecta/Matchers/EXPMatchers+beNil.h"; sourceTree = ""; }; + D5010834CD44C2DF2E07FD32C2F021D4 /* Masonry.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.debug.xcconfig; sourceTree = ""; }; + DD81653C343E839304192B62BD84A4A1 /* MASLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLayoutConstraint.h; path = Masonry/MASLayoutConstraint.h; sourceTree = ""; }; + E1F40E1B3615FA57953ACE2F203E7197 /* NSObject+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Expecta.h"; path = "Expecta/NSObject+Expecta.h"; sourceTree = ""; }; + E26DB36C1AA9C59E8967814F19171F5B /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MASAdditions.m"; path = "Masonry/NSArray+MASAdditions.m"; sourceTree = ""; }; + E4BE7BE136208AF771E88F33DCD45DC8 /* EXPBlockDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPBlockDefinedMatcher.m; path = Expecta/EXPBlockDefinedMatcher.m; sourceTree = ""; }; + E62CAE4ED2112AFC39C375049F2E74B8 /* EXPMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatchers.h; path = Expecta/Matchers/EXPMatchers.h; sourceTree = ""; }; + E79AA722BC2B1C69DC4D0A106BFFC372 /* Pods-Masonry iOS Examples-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Masonry iOS Examples-dummy.m"; sourceTree = ""; }; + EB57A7C7BEF752029BE858DA4636F52D /* EXPMatchers+beLessThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.m"; sourceTree = ""; }; + ECD13968D0CD6EACE4DCB09F9AFE00CF /* LayoutGuide+MASShorthandAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "LayoutGuide+MASShorthandAdditions.m"; path = "Masonry/LayoutGuide+MASShorthandAdditions.m"; sourceTree = ""; }; + F0A3A42C3994852DE718F3A82885C4F9 /* EXPMatcherHelpers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcherHelpers.h; path = Expecta/Matchers/EXPMatcherHelpers.h; sourceTree = ""; }; + F1A2974DF0EE9CCF9D1F937EE0B0A041 /* EXPMatchers+beginWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beginWith.h"; path = "Expecta/Matchers/EXPMatchers+beginWith.h"; sourceTree = ""; }; + F54F5DEC635206C3D85182A54CDFC024 /* EXPMatchers+endWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+endWith.h"; path = "Expecta/Matchers/EXPMatchers+endWith.h"; sourceTree = ""; }; + F5A15DDD5B56508596B637D37E7CF067 /* EXPMatchers+respondTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+respondTo.m"; path = "Expecta/Matchers/EXPMatchers+respondTo.m"; sourceTree = ""; }; + F7CB9B0B3F8680F35B9EC71EABF62ED6 /* Expecta.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Expecta.debug.xcconfig; sourceTree = ""; }; + FBB3118652D20683E364309C03238B2E /* Pods-MasonryTestsLoader.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MasonryTestsLoader.release.xcconfig"; sourceTree = ""; }; + FEC4E206495C50DD1987B8C7829F6437 /* LayoutGuide+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "LayoutGuide+MASAdditions.h"; path = "Masonry/LayoutGuide+MASAdditions.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 03F8C9DE4B5918EEA35CE61AA3A1186A /* Frameworks */ = { + 103342CF1962589237E84DF9EC6C3CDF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0E8E7C035F8969CF3DC93E5490A6158B /* Foundation.framework in Frameworks */, - F7B20B4187947E3B6B93F0457C239D0B /* XCTest.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 583B8AB450D47A22AD844DA398F34FCC /* Frameworks */ = { + 42B4066E17B7664B364B444935A85699 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DBA55CF16CB958E3F3D38079F18EBC06 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6FD8312A1AEB348F49A81C438DB25115 /* Frameworks */ = { + B6A2C4B44C0492964B11825B87F336A9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F0B56A7D38A399A2F67F9920C9526A66 /* Foundation.framework in Frameworks */, - 6209E20926D79222E59F58B962BFAA1E /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9E80CE71F73E7DB19033544A8A4E9F55 /* Frameworks */ = { + C4B17D0D2BB73F0DFCDE7639BEB92A99 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F589CF64CC8ED22D9F37824176FBBB72 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - A3EB68BB62C219069E6DBA1A070D7F3F /* Frameworks */ = { + C966F79C4262300F36CF75EB47C91210 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D904A66B88A11E0356D09C38CA20102D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0DA9AF80DA7ECA5B4D31C526D9F57DB2 /* Development Pods */ = { - isa = PBXGroup; - children = ( - 18D532DEFE002898478F83CCDCC47B5D /* Masonry */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - 113776CC3D7FEF15CE1357194041AAFC /* Targets Support Files */ = { + 295D20B1953B3B187E107795E0CCEA5C /* Pods-MasonryTestsLoader */ = { isa = PBXGroup; children = ( - 523AEFB63B1A95928D17E7547C93E598 /* Pods-Masonry iOS Examples */, - 9183704F5C71C360D6CB1A399612D0E0 /* Pods-Masonry iOS Tests */, - BD399A650CE28E083F4B32EED754F012 /* Pods-MasonryTestsLoader */, + 958492CF9426E7CDA2B714635BEA9477 /* Pods-MasonryTestsLoader-acknowledgements.markdown */, + 0B699617FD75A57FEAE1EDBA21B04F11 /* Pods-MasonryTestsLoader-acknowledgements.plist */, + 299ABE997F6723183C584B121F94415E /* Pods-MasonryTestsLoader-dummy.m */, + 6E2F6452C6FBF7416CC1FDCA290F5E96 /* Pods-MasonryTestsLoader.debug.xcconfig */, + FBB3118652D20683E364309C03238B2E /* Pods-MasonryTestsLoader.release.xcconfig */, ); - name = "Targets Support Files"; + name = "Pods-MasonryTestsLoader"; + path = "Target Support Files/Pods-MasonryTestsLoader"; sourceTree = ""; }; - 122DA2E5084A4393C29BE363C764795C /* Frameworks */ = { + 743CF0686020AF5A805DFE0F6FAF7EAD /* Development Pods */ = { isa = PBXGroup; children = ( - 926C31924772091F3FBE0E8F025C2B0D /* iOS */, + 795D59F7764316608ABED8CC9310AC0C /* Masonry */, ); - name = Frameworks; + name = "Development Pods"; sourceTree = ""; }; - 18D532DEFE002898478F83CCDCC47B5D /* Masonry */ = { + 795D59F7764316608ABED8CC9310AC0C /* Masonry */ = { isa = PBXGroup; children = ( - CFF7DF6CE7E3205ECC5D3904C3AC169D /* Masonry */, - C4880E6FCE3E79307C7AD19D76754823 /* Support Files */, + FEC4E206495C50DD1987B8C7829F6437 /* LayoutGuide+MASAdditions.h */, + B394FB6D49FAF7FAD8D13D36456DC71E /* LayoutGuide+MASAdditions.m */, + C487CB8F7B662AD21FB0ACDD409248EB /* LayoutGuide+MASShorthandAdditions.h */, + ECD13968D0CD6EACE4DCB09F9AFE00CF /* LayoutGuide+MASShorthandAdditions.m */, + 30933C59CA21076A391BAAAB4AD2CD4C /* MASCompositeConstraint.h */, + 6A49105F3076B160126FA5F97C1C3C12 /* MASCompositeConstraint.m */, + A1364BD8BFB3079E8AF6C124BC50E889 /* MASConstraint.h */, + 741EDD04C8E9AC9B3074B26C300957A9 /* MASConstraint.m */, + 25615882305B886DDE423AE5E03DF5CB /* MASConstraint+Private.h */, + 9F77CE96F3DAB41E69EE8BB9050E257F /* MASConstraintMaker.h */, + B0EE972E8F932B04E66E65DE82870717 /* MASConstraintMaker.m */, + DD81653C343E839304192B62BD84A4A1 /* MASLayoutConstraint.h */, + 1735ABCBAE67332541684FB30FE21FDF /* MASLayoutConstraint.m */, + 28F25B1BD3C8C2239E421AF5DBAFFCC3 /* Masonry.h */, + 8076E486DC7258AC955A834960FE452D /* MASUtilities.h */, + 4E8B1FF46411CDB71C0D319565D34343 /* MASUtilities.m */, + 3967033705D28226FDBC02F4EF3D832D /* MASViewAttribute.h */, + 0A2355A7FF831E92E2450625F2701398 /* MASViewAttribute.m */, + 4512CC9B9209948D1320D1A93879F65F /* MASViewConstraint.h */, + B61415DCBA8E999175788DC91B459287 /* MASViewConstraint.m */, + 40510E8BC036FFDDF98EB28362EEFCEC /* NSArray+MASAdditions.h */, + E26DB36C1AA9C59E8967814F19171F5B /* NSArray+MASAdditions.m */, + 933C56887CDDDBE0D8B572C8C77FF0CA /* NSArray+MASShorthandAdditions.h */, + A32849E7FB9B4BC1FB808FC936C98713 /* NSArray+MASShorthandAdditions.m */, + 8B04567735EB424B8830838CCDDFB6B7 /* NSLayoutConstraint+MASDebugAdditions.h */, + BBC072082F2C1B0D3CFDE03BBBCFD125 /* NSLayoutConstraint+MASDebugAdditions.m */, + 33D751850CDEDE02F7ABFACA6610FDC9 /* View+MASAdditions.h */, + 02EEB3D513AE4127353434103F20DF7A /* View+MASAdditions.m */, + 10AA62639EDB09AE916B3DD8AAD36DC3 /* View+MASShorthandAdditions.h */, + 70EA2CAC52167DA57CEEEA6F37C6D3AD /* View+MASShorthandAdditions.m */, + 74DF6E1ECAB984700147F9BA24F206B3 /* ViewController+MASAdditions.h */, + 48110E19BBB54C5CA27DE1EBA62F7562 /* ViewController+MASAdditions.m */, + C464F4B17BCE9E932214142E7D5FC068 /* Pod */, + 7BD5D518AA86BF7B0CFC66AFF250D7FA /* Support Files */, ); name = Masonry; path = ..; sourceTree = ""; }; - 2C212CDC4B22CF51422FF7C8D4BF9E56 /* Pods */ = { + 7BD5D518AA86BF7B0CFC66AFF250D7FA /* Support Files */ = { isa = PBXGroup; children = ( - DA1988695DF0633137E2D7B5035D2CDC /* Expecta */, + A5716C1E8A1774B13BE9A33DC8D68EE7 /* Masonry-dummy.m */, + 5CC7208CF5DD688411DE1074CD347C34 /* Masonry-prefix.pch */, + D5010834CD44C2DF2E07FD32C2F021D4 /* Masonry.debug.xcconfig */, + 109B3FC0CAC2B4FD7E9BC1B1174C4152 /* Masonry.release.xcconfig */, ); - name = Pods; + name = "Support Files"; + path = "Pods/Target Support Files/Masonry"; sourceTree = ""; }; - 523AEFB63B1A95928D17E7547C93E598 /* Pods-Masonry iOS Examples */ = { + 9E330023EBA13F220784AF67C00662F3 /* Pods-Masonry iOS Examples */ = { isa = PBXGroup; children = ( - 67872159D235C01079FD18A895BC35BE /* Pods-Masonry iOS Examples-acknowledgements.markdown */, - 3ABABA36A05ECCDA76F9388C3A7262E8 /* Pods-Masonry iOS Examples-acknowledgements.plist */, - 0F2DF08BADAA0D595D88E9A5F2F4AE8F /* Pods-Masonry iOS Examples-dummy.m */, - 7559C19053134AD8CF9C91D122AC2090 /* Pods-Masonry iOS Examples-frameworks.sh */, - 1C13229D7A9FD06FAA259C99FB5A6E11 /* Pods-Masonry iOS Examples-resources.sh */, - C5ABB1C6CB3F9F99597CCF6727731A7B /* Pods-Masonry iOS Examples.debug.xcconfig */, - 1B998D4CCC665C40E8A45CF07DFD7ABC /* Pods-Masonry iOS Examples.release.xcconfig */, + 3363C5068ED635F923E73ABFAC14E437 /* Pods-Masonry iOS Examples-acknowledgements.markdown */, + 96D9849E582F23269E90480BB21226BF /* Pods-Masonry iOS Examples-acknowledgements.plist */, + E79AA722BC2B1C69DC4D0A106BFFC372 /* Pods-Masonry iOS Examples-dummy.m */, + 078F70BA7D353AFB208803CB51C4358A /* Pods-Masonry iOS Examples.debug.xcconfig */, + 2D07A6AA6C9E025EE07A84762AFCFA0C /* Pods-Masonry iOS Examples.release.xcconfig */, ); name = "Pods-Masonry iOS Examples"; path = "Target Support Files/Pods-Masonry iOS Examples"; sourceTree = ""; }; - 6B57A62A4ECEF9976CBA3885013FA6AC /* Products */ = { + AB05D8B7EFF4A1011FC4B47EB0CAAEE9 /* Pods */ = { isa = PBXGroup; children = ( - 2A7DB9040882B1058689C275628BAD96 /* libExpecta.a */, - 2B6A8C9B5A40329ADEFB0567ED8489DC /* libMasonry.a */, - 8B4562385452B8EF12C3E0EFC2E07D12 /* libPods-Masonry iOS Examples.a */, - 10A477660D2D97AEF58A6795020511A9 /* libPods-Masonry iOS Tests.a */, - C4EC8E6D70CF2CC9E094524A6560BC80 /* libPods-MasonryTestsLoader.a */, + E1351F833085E0FEEB3023846ECCC623 /* Expecta */, ); - name = Products; + name = Pods; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + B55E6C492493D5591200DFCA768C73C2 /* Pods-Masonry iOS Tests */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - 0DA9AF80DA7ECA5B4D31C526D9F57DB2 /* Development Pods */, - 122DA2E5084A4393C29BE363C764795C /* Frameworks */, - 2C212CDC4B22CF51422FF7C8D4BF9E56 /* Pods */, - 6B57A62A4ECEF9976CBA3885013FA6AC /* Products */, - 113776CC3D7FEF15CE1357194041AAFC /* Targets Support Files */, + 66F3282D196FCB866C87A63E1210D189 /* Pods-Masonry iOS Tests-acknowledgements.markdown */, + B9BACCCDCCC9968B937326B37EB3B557 /* Pods-Masonry iOS Tests-acknowledgements.plist */, + 8A87D3A7AB8CCF25E87BFA76CAB7CAA8 /* Pods-Masonry iOS Tests-dummy.m */, + 82C52D4DED5698D760C6C085693FFE20 /* Pods-Masonry iOS Tests.debug.xcconfig */, + 4C6A4D44BC66DA17B7398BFA64ADC39A /* Pods-Masonry iOS Tests.release.xcconfig */, ); + name = "Pods-Masonry iOS Tests"; + path = "Target Support Files/Pods-Masonry iOS Tests"; sourceTree = ""; }; - 9183704F5C71C360D6CB1A399612D0E0 /* Pods-Masonry iOS Tests */ = { + BAF324D0599F797AFEFCF92A8F59C822 /* Targets Support Files */ = { isa = PBXGroup; children = ( - BF54E13A05CB850F6732BED53C409DF8 /* Pods-Masonry iOS Tests-acknowledgements.markdown */, - 3D0C38F1CACBCE8726531E82CF48BE6A /* Pods-Masonry iOS Tests-acknowledgements.plist */, - 5478FCE860D549499E9B142210C4E612 /* Pods-Masonry iOS Tests-dummy.m */, - 0341D10523364E42D0E6F9935E3DA6DE /* Pods-Masonry iOS Tests-frameworks.sh */, - 58004526F7F7D8C02F9C425D2847EA60 /* Pods-Masonry iOS Tests-resources.sh */, - EF1B79566A439B7A68A81F499EBFDDE1 /* Pods-Masonry iOS Tests.debug.xcconfig */, - 590084C07434815AE5BEC2E76CD54154 /* Pods-Masonry iOS Tests.release.xcconfig */, + 9E330023EBA13F220784AF67C00662F3 /* Pods-Masonry iOS Examples */, + B55E6C492493D5591200DFCA768C73C2 /* Pods-Masonry iOS Tests */, + 295D20B1953B3B187E107795E0CCEA5C /* Pods-MasonryTestsLoader */, ); - name = "Pods-Masonry iOS Tests"; - path = "Target Support Files/Pods-Masonry iOS Tests"; + name = "Targets Support Files"; sourceTree = ""; }; - 926C31924772091F3FBE0E8F025C2B0D /* iOS */ = { + C464F4B17BCE9E932214142E7D5FC068 /* Pod */ = { isa = PBXGroup; children = ( - DE147446A1225BA68EA82615B1436CC1 /* Foundation.framework */, - DDF04AEFCC4B011565BFFBFFF52B2FCE /* UIKit.framework */, - E2D9897D646E2BB9FBF73704C04440B2 /* XCTest.framework */, + 69E0E543DB95F5EF77C15AA13AB54C95 /* LICENSE */, + 47F0F62DAA372493A08D04CE3637FBD9 /* Masonry.podspec */, + 7C47D35BD16CD8E62D1ADDE116711C6D /* README.md */, ); - name = iOS; + name = Pod; sourceTree = ""; }; - BD399A650CE28E083F4B32EED754F012 /* Pods-MasonryTestsLoader */ = { + CC0E280BDB5B31CE1F7BB77E447EA47A /* Products */ = { isa = PBXGroup; children = ( - 4B6B3284B56CCD1FFA3F49D1751D4763 /* Pods-MasonryTestsLoader-acknowledgements.markdown */, - E2824F3F718434AEC2CE23045FEC5541 /* Pods-MasonryTestsLoader-acknowledgements.plist */, - 40B4963257702BBD9CAF03BECB9D16F0 /* Pods-MasonryTestsLoader-dummy.m */, - C7004C5DD5811F3431B3C72C3ED02D96 /* Pods-MasonryTestsLoader-frameworks.sh */, - 0792517CDD83AC956FA10DA378F7C590 /* Pods-MasonryTestsLoader-resources.sh */, - 41073685DCEF4DD54806A297165DB39F /* Pods-MasonryTestsLoader.debug.xcconfig */, - AD6D89D8C414349AAD70BD448A0EB42D /* Pods-MasonryTestsLoader.release.xcconfig */, + 08F7F0770B4878B9883B87DCD8569CB4 /* libExpecta.a */, + 1FFED36A657123030ABB700256D73F15 /* libMasonry.a */, + 034FBFCB448F9D15F7570093A95EF0C2 /* libPods-Masonry iOS Examples.a */, + 17242E03658EDAE3CC8E0FFA33C92566 /* libPods-Masonry iOS Tests.a */, + A5E5EBA381830646070498CBB04C9A0F /* libPods-MasonryTestsLoader.a */, ); - name = "Pods-MasonryTestsLoader"; - path = "Target Support Files/Pods-MasonryTestsLoader"; + name = Products; sourceTree = ""; }; - C4880E6FCE3E79307C7AD19D76754823 /* Support Files */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - D17CA42B2DBD2AB2BBA3CBB7E2205968 /* Masonry.xcconfig */, - 585243F6624B3378D0DA0CF280D9F8EA /* Masonry-dummy.m */, - 639FB58CFFC214FCCF32C06B0ACC9B5B /* Masonry-prefix.pch */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + 743CF0686020AF5A805DFE0F6FAF7EAD /* Development Pods */, + D89477F20FB1DE18A04690586D7808C4 /* Frameworks */, + AB05D8B7EFF4A1011FC4B47EB0CAAEE9 /* Pods */, + CC0E280BDB5B31CE1F7BB77E447EA47A /* Products */, + BAF324D0599F797AFEFCF92A8F59C822 /* Targets Support Files */, ); - name = "Support Files"; - path = "Pods/Target Support Files/Masonry"; sourceTree = ""; }; - C934D5D64F7FA6AE026CB137FBAD29E5 /* Support Files */ = { + D89477F20FB1DE18A04690586D7808C4 /* Frameworks */ = { isa = PBXGroup; children = ( - 489F09523F5700F4F414FA98E0BDEEE4 /* Expecta.xcconfig */, - D50A0454EC2ACA566EC1A84F70DBE96A /* Expecta-dummy.m */, - 190660A7B90AD2F0323CF9185E32C8D5 /* Expecta-prefix.pch */, ); - name = "Support Files"; - path = "../Target Support Files/Expecta"; + name = Frameworks; sourceTree = ""; }; - CFF7DF6CE7E3205ECC5D3904C3AC169D /* Masonry */ = { + E1351F833085E0FEEB3023846ECCC623 /* Expecta */ = { isa = PBXGroup; children = ( - 156873F82669378F00656904 /* LayoutGuide+MASAdditions.h */, - 156873F52669378F00656904 /* LayoutGuide+MASAdditions.m */, - 156873F62669378F00656904 /* LayoutGuide+MASShorthandAdditions.h */, - 156873FA2669378F00656904 /* LayoutGuide+MASShorthandAdditions.m */, - E66C1687519434878576CA9CA479B868 /* MASCompositeConstraint.h */, - 8524B32277BDB7E1A36FB5F3EB3BAC6B /* MASCompositeConstraint.m */, - 9F34293A1C0AD9FD7013D79B910FE7E5 /* MASConstraint.h */, - AEEF83956F9DBD675F4C2EF46B690567 /* MASConstraint.m */, - 48FB054B1F997F66CA0E17DB3B26223C /* MASConstraint+Private.h */, - 0A28546AD6B1C73C384E28625120AED5 /* MASConstraintMaker.h */, - EB9E853361218FD2866DABF9A3E384D5 /* MASConstraintMaker.m */, - 6CBE98CC00A3DD78FC850D713EB164BE /* MASLayoutConstraint.h */, - DBCE4AE4A77A457256CB505688569B23 /* MASLayoutConstraint.m */, - FC8A8F10966AF0D4BEF49EBF2CFF4C0C /* Masonry.h */, - 5D2BB147FD43518883D32412C882B443 /* MASUtilities.h */, - 156873F92669378F00656904 /* MASUtilities.m */, - AE58747F7ED5EE1564AC83C82F3C9DEA /* MASViewAttribute.h */, - BB267133DB0AAEF96D19D2085B85E06D /* MASViewAttribute.m */, - 194EE173246D25F2D7ED8C47FAF2ACF4 /* MASViewConstraint.h */, - 7A54ADC5F5885AE49835C21390D7B42C /* MASViewConstraint.m */, - 01B7B1098F825865196B739BF9E36C04 /* NSArray+MASAdditions.h */, - 2A31938A554F154B402756FCBFE7167B /* NSArray+MASAdditions.m */, - 593CB40473F1E441BC65F0044379DA72 /* NSArray+MASShorthandAdditions.h */, - 156873F72669378F00656904 /* NSArray+MASShorthandAdditions.m */, - 4AF06A246FC5C7C1E779C3BFB883040C /* NSLayoutConstraint+MASDebugAdditions.h */, - 358E8501C72A8B4A191589A7570FCC15 /* NSLayoutConstraint+MASDebugAdditions.m */, - 3683CAB8F5A6384907767DF9817A4B09 /* View+MASAdditions.h */, - 02DA3844CF514753E9CC1AE66A762D26 /* View+MASAdditions.m */, - 2B80588779A2286A5E054DE4D0DDC03A /* View+MASShorthandAdditions.h */, - 156873F42669378F00656904 /* View+MASShorthandAdditions.m */, - 6F83FB50741120EF2F5F9723A76C9099 /* ViewController+MASAdditions.h */, - 5A30D7435201DE311E06A35CEA390581 /* ViewController+MASAdditions.m */, + B753A37B576884F5FADB6E1C7BEA5013 /* EXPBlockDefinedMatcher.h */, + E4BE7BE136208AF771E88F33DCD45DC8 /* EXPBlockDefinedMatcher.m */, + 097C9C9334A54D561D4D91899DC6D0F5 /* EXPDefines.h */, + 40848C0C12BFC3FFF04BA34DE0CFEDE1 /* EXPDoubleTuple.h */, + A10F1DEA5080C60C5317CFFF97E16F32 /* EXPDoubleTuple.m */, + 6DB89D24ECB0566107D944096312C3FA /* Expecta.h */, + B1E0F64D4FE0CE118C570076A9506D57 /* ExpectaObject.h */, + 2287AC47D72FED8A0AFDC9B7EBE176EC /* ExpectaObject.m */, + B0E3BFA20A42FAD25CBAA12003D88EA2 /* ExpectaSupport.h */, + 854B390E1F4E5BB07C6CFA25B7691D16 /* ExpectaSupport.m */, + 42A6E443D42C1EE234A2449E3F370942 /* EXPExpect.h */, + 5D7E76599E0A16881905020078431451 /* EXPExpect.m */, + 4324340906222BC4D70B66CC607CE6EE /* EXPFloatTuple.h */, + 541464FB5D516499DF0360723BD4BB7C /* EXPFloatTuple.m */, + 6B6580C52FB3F2F65EEF0CECF613374E /* EXPMatcher.h */, + F0A3A42C3994852DE718F3A82885C4F9 /* EXPMatcherHelpers.h */, + 6F988A27369666BDE47CDB2B6C809945 /* EXPMatcherHelpers.m */, + E62CAE4ED2112AFC39C375049F2E74B8 /* EXPMatchers.h */, + C216D527A6F209AB9AAD544000E63427 /* EXPMatchers+beCloseTo.h */, + 86F3DEAD3699B41D07009E64FE392FBF /* EXPMatchers+beCloseTo.m */, + 6B010F85FB7805073FD3A073341E97E2 /* EXPMatchers+beFalsy.h */, + 5AA7AE2F6519C01A858AA56ADC6C0118 /* EXPMatchers+beFalsy.m */, + F1A2974DF0EE9CCF9D1F937EE0B0A041 /* EXPMatchers+beginWith.h */, + C72BD4201E0FB72BE43A4CBBAE69E443 /* EXPMatchers+beginWith.m */, + 8EAF619D343CBB1CF3B7401F31AEE720 /* EXPMatchers+beGreaterThan.h */, + 9EAC4DB7F4781EFDF9CAEE010CE316A9 /* EXPMatchers+beGreaterThan.m */, + 43836DE8E97F5392C276F30B8D7AD514 /* EXPMatchers+beGreaterThanOrEqualTo.h */, + 87B08263B34CC746FC1645359B11B5D3 /* EXPMatchers+beGreaterThanOrEqualTo.m */, + 94E012777A2AE21B882A02354D0DF491 /* EXPMatchers+beIdenticalTo.h */, + 4448FECF990760A568B005012B766C32 /* EXPMatchers+beIdenticalTo.m */, + 829FE3CD93FECE6DA8F960BECA7004DB /* EXPMatchers+beInstanceOf.h */, + 769D2BD9A360398965D078254446EE92 /* EXPMatchers+beInstanceOf.m */, + AEEA81685BED00CA2D08644B3D992447 /* EXPMatchers+beInTheRangeOf.h */, + AA05135B80F02BA708E584BE93EAE509 /* EXPMatchers+beInTheRangeOf.m */, + BD8B0206EA620497EDB7CAFA9EDC7B95 /* EXPMatchers+beKindOf.h */, + 8F3E3D128DE2E8B3AC4885CEE00FCD05 /* EXPMatchers+beKindOf.m */, + CA4DCA67ABD5C5D5A881EECB095C616C /* EXPMatchers+beLessThan.h */, + C97DDB1DE18EFF1E352D2C15B2A9BC33 /* EXPMatchers+beLessThan.m */, + 66DF1607BF8FFF84DD6639E94DE88378 /* EXPMatchers+beLessThanOrEqualTo.h */, + EB57A7C7BEF752029BE858DA4636F52D /* EXPMatchers+beLessThanOrEqualTo.m */, + D3EC2F097AEE540C90EAC265773EDA85 /* EXPMatchers+beNil.h */, + B8ECC452F75A277850F64A0E33F274C5 /* EXPMatchers+beNil.m */, + 1EDF2951F01474822E0E8F9EB76143A5 /* EXPMatchers+beSubclassOf.h */, + 2AD8B96FC6EA509C6208FBBD04895018 /* EXPMatchers+beSubclassOf.m */, + 803A15B8EC7FC56D120C016A7B89BBCC /* EXPMatchers+beSupersetOf.h */, + A7A3D8587BC6DAB7EA6E4A343B23FBE2 /* EXPMatchers+beSupersetOf.m */, + 1B6CD575CEFDAC7E72EFE1A907057FB9 /* EXPMatchers+beTruthy.h */, + AD63EC1E37D24355FE834107F62FAF98 /* EXPMatchers+beTruthy.m */, + B0A615E519E5DEE91A404198AE2BFF8C /* EXPMatchers+conformTo.h */, + 43A67C92FB8A7592CBCE09307DA01AF0 /* EXPMatchers+conformTo.m */, + 0414F8191399724707CC515B23938266 /* EXPMatchers+contain.h */, + 6173CC31C10F0050D31733615599B090 /* EXPMatchers+contain.m */, + F54F5DEC635206C3D85182A54CDFC024 /* EXPMatchers+endWith.h */, + 0EB461EE218697A6B792EE827934B5E0 /* EXPMatchers+endWith.m */, + 82027158F59D887F35B18901C0012EDE /* EXPMatchers+equal.h */, + 070DD0B5FF3AEC96294E28E7546898E3 /* EXPMatchers+equal.m */, + D11D1CDDEDFF327522CA54BE7DF33771 /* EXPMatchers+haveCountOf.h */, + 7EA666C2D9E5F656BFCC3EB1E1DFC5F8 /* EXPMatchers+haveCountOf.m */, + A2FFDEE02AC253C0F7D76BE7E3F32CAE /* EXPMatchers+match.h */, + A42A1FB895801BDD4E5B7B57B0A05104 /* EXPMatchers+match.m */, + B60F53F110FEC4A9658F125EC15D6948 /* EXPMatchers+postNotification.h */, + 0BF8087A416A7EB3F95BECB53A82AE7F /* EXPMatchers+postNotification.m */, + 86C3D20E3852E93A705B38C87D44CF25 /* EXPMatchers+raise.h */, + 4208F20FBB51E24C0035B0A9043519E5 /* EXPMatchers+raise.m */, + 7340210602BDFD1CA8C7535091837F6C /* EXPMatchers+raiseWithReason.h */, + B87562C8906C880E0B994BB48202735B /* EXPMatchers+raiseWithReason.m */, + 5C9BFB46434107BF7B2A364929A9075F /* EXPMatchers+respondTo.h */, + F5A15DDD5B56508596B637D37E7CF067 /* EXPMatchers+respondTo.m */, + 4264D1B3E3017D85F1079D57BDF5A1D8 /* EXPUnsupportedObject.h */, + 0EAC10A91468BFB1107398DCBD3671CB /* EXPUnsupportedObject.m */, + E1F40E1B3615FA57953ACE2F203E7197 /* NSObject+Expecta.h */, + B5D8B3763578E6D0CC56EDAD33A2903A /* NSValue+Expecta.h */, + 2B4B8CBF384D897E9FDA56292461EF02 /* NSValue+Expecta.m */, + F0DA9D71F35F1C5B5176F5A898EAEBA2 /* Support Files */, ); - path = Masonry; + name = Expecta; + path = Expecta; sourceTree = ""; }; - DA1988695DF0633137E2D7B5035D2CDC /* Expecta */ = { + F0DA9D71F35F1C5B5176F5A898EAEBA2 /* Support Files */ = { isa = PBXGroup; children = ( - 55CDC4616612ED7AA50A3E836E82B6BE /* EXPBlockDefinedMatcher.h */, - 57E3007D6F08B4F287C35811E372C9D8 /* EXPBlockDefinedMatcher.m */, - 7F338BE8E88D6EB9496878863145B7C5 /* EXPDefines.h */, - AEDF716CFA2F6ADA12E2C6D67EF8B2D2 /* EXPDoubleTuple.h */, - 7EBF9BAD2F54920E12BA8D79EB3EE01C /* EXPDoubleTuple.m */, - 50660A3CB85C3AEC478DB2211E3CD76D /* Expecta.h */, - 4730731B518BAFE15142AA613F01F2EB /* ExpectaObject.h */, - 1C060BC1E7116BC87FA94B45087D771B /* ExpectaObject.m */, - 80708E2496B3C69452E559E575CD1D47 /* ExpectaSupport.h */, - D8A10F7BEA143532312B95447C5A5B7C /* ExpectaSupport.m */, - 7735CC4570D0C643EF99240D43284C4A /* EXPExpect.h */, - CBEA9FE72B61C2E594B205165A09ECA7 /* EXPExpect.m */, - 63BB2BA348CAEB74A836E775BF8ABE2C /* EXPFloatTuple.h */, - 4EEA345137E6F1B86DEC1ECEA04BEBD5 /* EXPFloatTuple.m */, - 8F3B66464C8F4DC1EDFFEA58A98F9B5C /* EXPMatcher.h */, - 0A3DE5BA9F1F1BFDC50FA062018A4FF9 /* EXPMatcherHelpers.h */, - 7BD870522AC013353A13269A9CDEA664 /* EXPMatcherHelpers.m */, - 61A4675B57359AB9653085CE195438A0 /* EXPMatchers.h */, - 1FD8638DC7137054523DFDCD37576559 /* EXPMatchers+beCloseTo.h */, - C3EDF7B170EC221838CC2A773B0CDC59 /* EXPMatchers+beCloseTo.m */, - 481E644C11C98774BE98309BA0A2CB6C /* EXPMatchers+beFalsy.h */, - 2547652506D61F49D4B0882ED6B64B16 /* EXPMatchers+beFalsy.m */, - 49E1D663D9B2CCDFFC739982A06D57C5 /* EXPMatchers+beginWith.h */, - 34177F23961DA5ABF45170FA2037F8C1 /* EXPMatchers+beginWith.m */, - 1F04D682D92E0B2B40FCE8BE214BDA61 /* EXPMatchers+beGreaterThan.h */, - B1B09BEB8A5DCEEF709CBA1F5CEE0B3B /* EXPMatchers+beGreaterThan.m */, - 59623D6FE7CFF9076F3ACA8D492A0A1E /* EXPMatchers+beGreaterThanOrEqualTo.h */, - 7C9A0D7E24E5DCE2B938FC4C4901B353 /* EXPMatchers+beGreaterThanOrEqualTo.m */, - C98931A95CEDDC4098458BEB8FF864ED /* EXPMatchers+beIdenticalTo.h */, - 687D54A17077AB5A8B750650CACBF3B3 /* EXPMatchers+beIdenticalTo.m */, - 5B9D165EC173241B2C9EFF6FDB72491D /* EXPMatchers+beInstanceOf.h */, - 5C71CEC9EB6A0B127237D9BE7AAB6081 /* EXPMatchers+beInstanceOf.m */, - 10904D53FD27FC7E59BF92201687D517 /* EXPMatchers+beInTheRangeOf.h */, - 3B014C13318B98A27EB6C15EB341678A /* EXPMatchers+beInTheRangeOf.m */, - E1DAB7DBD1812988117194D50ACE07A0 /* EXPMatchers+beKindOf.h */, - 1F4C6FD0E96DEE3BA24A38BA86A2EE83 /* EXPMatchers+beKindOf.m */, - 8140BF73F39AA0E15893403B6B2DCD9D /* EXPMatchers+beLessThan.h */, - E4CFDB3889CFAC5E05497101D3F82C0A /* EXPMatchers+beLessThan.m */, - 122F547802BB911D1B9F0D52C33B568D /* EXPMatchers+beLessThanOrEqualTo.h */, - 7B14D8EAF812AD82BC8BA17C3DE5B573 /* EXPMatchers+beLessThanOrEqualTo.m */, - 1D20E91754698E478D6D3E468D5EC2C8 /* EXPMatchers+beNil.h */, - 2251A125FE1F9EE61891B85AAAE71511 /* EXPMatchers+beNil.m */, - CBFE4C2A8558AE9FF24FCA67343113E2 /* EXPMatchers+beSubclassOf.h */, - 98AFDA78C0BA149C8976CF3889419AA7 /* EXPMatchers+beSubclassOf.m */, - 2F3869A1E846595FC8A567E9EF91600E /* EXPMatchers+beSupersetOf.h */, - DD2917440B958D545CC2EE8F2240D37E /* EXPMatchers+beSupersetOf.m */, - 0AAF8809A7BBA8A694825848A7EF07D2 /* EXPMatchers+beTruthy.h */, - 56B7202FE09B3976D80FD78EF63258F6 /* EXPMatchers+beTruthy.m */, - E36B444420761FDAD709E0D161F812C1 /* EXPMatchers+conformTo.h */, - C565C77B7F3AC98E871994970653A958 /* EXPMatchers+conformTo.m */, - 44127DD3F6457EEB52F5B0B644C748E5 /* EXPMatchers+contain.h */, - DB37BB623433F136572448D26D6FB70A /* EXPMatchers+contain.m */, - 5EEECBC2AC825C5498273AB762F561EF /* EXPMatchers+endWith.h */, - B20D7BAA1D4E85394D4C0BCBCB2BF960 /* EXPMatchers+endWith.m */, - 8780C4CC76E68DD8EA97F0E4B3287D64 /* EXPMatchers+equal.h */, - BFE37A3BBF6AEB4B7163AAE1BD655CDD /* EXPMatchers+equal.m */, - 75992ED787187D30BE4B5F69BEF5EE30 /* EXPMatchers+haveCountOf.h */, - 663B481626C7E7C19A7A42120FFC0E77 /* EXPMatchers+haveCountOf.m */, - 88907F8AEA4C9B20AEB63E2047F54502 /* EXPMatchers+match.h */, - 10F25824C22E66EAFBAA5C0F62629D84 /* EXPMatchers+match.m */, - 2C5D45C77F469660C6D6155EA159784F /* EXPMatchers+postNotification.h */, - 065A35D6EF149C4D848B49BAA59DAE1E /* EXPMatchers+postNotification.m */, - 10F0627165FE862DA384F755B45FD6A7 /* EXPMatchers+raise.h */, - 9D1DE5A0855C3142FCDE4471717B4C92 /* EXPMatchers+raise.m */, - 13852BA59629381181212D4693F5CEC8 /* EXPMatchers+raiseWithReason.h */, - 228937A58D5E1EF34C595366A42C018E /* EXPMatchers+raiseWithReason.m */, - D242BA4F2D8595007967657C3EBF92CE /* EXPMatchers+respondTo.h */, - 9616A699420336DD8F227A5C41E36432 /* EXPMatchers+respondTo.m */, - 1F1DE5E5E11E91062A5DA859EDCE3C49 /* EXPUnsupportedObject.h */, - 035F256E7A521234689F67B3EC887567 /* EXPUnsupportedObject.m */, - C0F0C9DE4D36C0025D1A49B0106644A4 /* NSObject+Expecta.h */, - 82F3CFD18ABD64DD8E88230EE43D854A /* NSValue+Expecta.h */, - ADBF0443B4181A4D41268AB9F62AA73C /* NSValue+Expecta.m */, - C934D5D64F7FA6AE026CB137FBAD29E5 /* Support Files */, + 37BB8D352222CE40BC119089DA9D26C1 /* Expecta-dummy.m */, + ADA29C9A8015D8D396B189B38E04D822 /* Expecta-prefix.pch */, + F7CB9B0B3F8680F35B9EC71EABF62ED6 /* Expecta.debug.xcconfig */, + 37C9A4075B3D6A87244FD6442E426342 /* Expecta.release.xcconfig */, ); - path = Expecta; + name = "Support Files"; + path = "../Target Support Files/Expecta"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 05E58D356A38DD487823D5BE24334920 /* Headers */ = { + 559DF3BD40FAE2478E30F355A3BE9218 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + A51F7ECF32728036C3977EA073A559AD /* EXPBlockDefinedMatcher.h in Headers */, + F7B19B68FAB73CB0732744B6A096D791 /* EXPDefines.h in Headers */, + 85F1E88FEEBF9B0337821E05C048AC39 /* EXPDoubleTuple.h in Headers */, + 5E6233C210A6AF47C79AC729CE57536E /* Expecta.h in Headers */, + F3D79EE95A53DC322C2F93551780FCC4 /* ExpectaObject.h in Headers */, + EED4D51267517F2D304C74540B6B0489 /* ExpectaSupport.h in Headers */, + A7AFF805552754168FE472102902BEE8 /* EXPExpect.h in Headers */, + 6D311E7FBE67BFDE9E812885324764C3 /* EXPFloatTuple.h in Headers */, + 26E33CBCA823C72C51357582994E746C /* EXPMatcher.h in Headers */, + 527A1FD6FD79117C535D19213B9011D1 /* EXPMatcherHelpers.h in Headers */, + BF0E9FC2F301F77F02220AA076BE6443 /* EXPMatchers+beCloseTo.h in Headers */, + F7A9F53A68FF24600778D518BCD448F1 /* EXPMatchers+beFalsy.h in Headers */, + BED84F19DDD265A8DC03B3F4DFFEA254 /* EXPMatchers+beginWith.h in Headers */, + 4954A385199A818B177E146777CF37D6 /* EXPMatchers+beGreaterThan.h in Headers */, + BF9E3937CCFD78E7DBE3EF757C4B9093 /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */, + 7C1632A83B80B163FAC5297F8E9576D1 /* EXPMatchers+beIdenticalTo.h in Headers */, + 55E5FF4DC5EEEC6B400A0D87E3193890 /* EXPMatchers+beInstanceOf.h in Headers */, + B458BC2D677BFE2781CA179888E41364 /* EXPMatchers+beInTheRangeOf.h in Headers */, + 306CE82B21363D3A2BE5791B0441F22C /* EXPMatchers+beKindOf.h in Headers */, + 6696CBE4654AD391C63CD4E85ACF2C97 /* EXPMatchers+beLessThan.h in Headers */, + 07E5854E45B4F185DAE8FDC36C94EECE /* EXPMatchers+beLessThanOrEqualTo.h in Headers */, + 738B88E8018D3400546022C0A2641846 /* EXPMatchers+beNil.h in Headers */, + A12CFB59F38100C987161083B914187D /* EXPMatchers+beSubclassOf.h in Headers */, + B0010BBE7F27AA63239F8B31D4AB4366 /* EXPMatchers+beSupersetOf.h in Headers */, + A26ADE1931856B9F72370EB470D145D7 /* EXPMatchers+beTruthy.h in Headers */, + 0E66A0F36DD725E82041A51F593EA534 /* EXPMatchers+conformTo.h in Headers */, + 7021D3AF25EC280F69E49EC9FBE59484 /* EXPMatchers+contain.h in Headers */, + AD2CF66258C344DB8B748A7D7325059E /* EXPMatchers+endWith.h in Headers */, + 57BA46DFE2F32F04F308289610F73EDD /* EXPMatchers+equal.h in Headers */, + 2D5858A78F99A1196B5416C63B18F8AA /* EXPMatchers+haveCountOf.h in Headers */, + 3726CD36BF4080EE1145EC822AA6BF4C /* EXPMatchers+match.h in Headers */, + AF4EEDDC8B4D37D4105C7AC3A571A6B3 /* EXPMatchers+postNotification.h in Headers */, + EA7CCE29307048D044A60D1F8D63D87A /* EXPMatchers+raise.h in Headers */, + 21D97B29CD24881CDB275150FFACB46C /* EXPMatchers+raiseWithReason.h in Headers */, + A5D55782524E9DA98FB2CF6C28E84110 /* EXPMatchers+respondTo.h in Headers */, + 4DEC4FC7A759ED6E40C6706E5E500543 /* EXPMatchers.h in Headers */, + 04DDC981AAD7F73EFDFD96393C227827 /* EXPUnsupportedObject.h in Headers */, + 8F5B10D2E6BD453C535653D36FFFE4BB /* NSObject+Expecta.h in Headers */, + 94A899454728A627B3A09E219D11F90B /* NSValue+Expecta.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 590C8A0DC5CE91691FCD4DB992C9F2FE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0B3330DD885757A45805E83A69E7AFFD /* EXPBlockDefinedMatcher.h in Headers */, - EFCF1E2468BC28069F92B4702B5DD463 /* EXPDefines.h in Headers */, - EE5A8DD4F03A890084772DA66DE9BE93 /* EXPDoubleTuple.h in Headers */, - 0CD876A643FA00F42565F0B4CFE5C360 /* Expecta.h in Headers */, - B72D6F9CD6DCCF9339A269BC0CABA88C /* ExpectaObject.h in Headers */, - 660BEA8AC93BC6DF29A73D1570C10120 /* ExpectaSupport.h in Headers */, - 31D27BF6DE823F040465EEC46431E22E /* EXPExpect.h in Headers */, - F3D6C90DF502E4B6BFA4B4B950FB176B /* EXPFloatTuple.h in Headers */, - 7C4FFAF7E7BD72B4775C2966898B3A83 /* EXPMatcher.h in Headers */, - C64C4032827660F5ED12E425857BE673 /* EXPMatcherHelpers.h in Headers */, - 47E018E82EA7801C93BE8D632FBAA3EC /* EXPMatchers+beCloseTo.h in Headers */, - 61E89F8C6D2C5658ECADCC9BE04E4E0F /* EXPMatchers+beFalsy.h in Headers */, - 5EB8C17604A5FCA7B0F9174850D0441F /* EXPMatchers+beginWith.h in Headers */, - B1964DABF421B8BA6BB9AB9E1CC0E387 /* EXPMatchers+beGreaterThan.h in Headers */, - BB0E62892680D990AC167E4629F95062 /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */, - 7100640F169A4EC93CA15F0D8B5AFE8F /* EXPMatchers+beIdenticalTo.h in Headers */, - DFFE7035A8177E14B29DE53973AE3B1E /* EXPMatchers+beInstanceOf.h in Headers */, - 94C94F986312F61D076591DBCEC07104 /* EXPMatchers+beInTheRangeOf.h in Headers */, - 8994485FB1398BF225377D4C109CA38B /* EXPMatchers+beKindOf.h in Headers */, - BAA98BF425D78B9F9FB405680EA0CB3D /* EXPMatchers+beLessThan.h in Headers */, - B1820A5E15F22942E386756A0473E808 /* EXPMatchers+beLessThanOrEqualTo.h in Headers */, - 19CDE56AC4388C284D9A394F64E0530C /* EXPMatchers+beNil.h in Headers */, - 4C2D57EF131B9A1AA1A65F36DA717BC7 /* EXPMatchers+beSubclassOf.h in Headers */, - 76FFE0A5253E08250D976CAE912B89D9 /* EXPMatchers+beSupersetOf.h in Headers */, - A193FB77C3606DE847937B79BD869F26 /* EXPMatchers+beTruthy.h in Headers */, - 87C087B7F1B93C2DD0B42A93B3E9D9C4 /* EXPMatchers+conformTo.h in Headers */, - D3B4D194BECF709DFA85E588891B885E /* EXPMatchers+contain.h in Headers */, - 4FE0FA38EA4BC9922DB982A2FB4B504A /* EXPMatchers+endWith.h in Headers */, - 4B76A75E1FA371E7EF6C821CD52514A1 /* EXPMatchers+equal.h in Headers */, - 11B98D7660EAD3B22A6F8DAFAC8E96F8 /* EXPMatchers+haveCountOf.h in Headers */, - 62A200B73B76F6740A3EEA168FBFFF41 /* EXPMatchers+match.h in Headers */, - B241CF27E6B9D2DBC3236BDC1BDA5B69 /* EXPMatchers+postNotification.h in Headers */, - 119C10C9E57E10B254B8B13A06D332F4 /* EXPMatchers+raise.h in Headers */, - 4E89738B989CA5A6018187E52FE0E216 /* EXPMatchers+raiseWithReason.h in Headers */, - 7A50398D1D6F1D22165ECAA192F9D1CF /* EXPMatchers+respondTo.h in Headers */, - 12ADCD5E7598997A3486E62E784DB241 /* EXPMatchers.h in Headers */, - B7FB8C30C577D624F5E0B1FDB3E6CD8B /* EXPUnsupportedObject.h in Headers */, - 69DCF5F3A96B49720B728BA6EF5E095A /* NSObject+Expecta.h in Headers */, - 120A345233C900C50BAD6F3950FAB8FA /* NSValue+Expecta.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7B091D57BCA2DBE1E64B837A161E9E23 /* Headers */ = { + 77F49828BC4A5B64BF07461BD891ED60 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 76A58C6131A1264FDE3DADAEA0AC83F5 /* MASCompositeConstraint.h in Headers */, - 9F196561D7369053FA6D9FD4374E85B9 /* MASConstraint.h in Headers */, - 0F7BD72B0882E4D4DD27C3B914EC3857 /* MASConstraintMaker.h in Headers */, - AEEF0434A83EF5F1949252A8409F71DD /* MASLayoutConstraint.h in Headers */, - D69C7F6B7677C82AABBF7FE0057CE931 /* Masonry.h in Headers */, - 28DD12DAF70F49B558112AA5E2809F19 /* MASUtilities.h in Headers */, - 42FA711D0BA099127544F7A978075C9D /* MASViewAttribute.h in Headers */, - 0D4B6D7C17953EF6C0BEFADA699DA6D2 /* MASViewConstraint.h in Headers */, - 2C8FBF03AD0FD40587A84D2994D758B4 /* NSArray+MASAdditions.h in Headers */, - 3AB6F716B6B591E90D2E2CB1434B55BB /* NSArray+MASShorthandAdditions.h in Headers */, - 067B3CDE5AAD4D941172A17C9EEA5916 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */, - AFD341AE846EE3D48F3832FB858FD31C /* View+MASAdditions.h in Headers */, - 156873FF2669378F00656904 /* LayoutGuide+MASAdditions.h in Headers */, - 156873FD2669378F00656904 /* LayoutGuide+MASShorthandAdditions.h in Headers */, - 4F51EE6366844B6C34DD13F77D9A76CA /* View+MASShorthandAdditions.h in Headers */, - 38B02E0B37B1F0225FBE396BD51461D9 /* ViewController+MASAdditions.h in Headers */, - 3E2C9C19590011C8FE1F3966F4AF52D5 /* MASConstraint+Private.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C26D47D31257D6157E79A579CA3A7110 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F133CC7894BED89F6358A098BF49E671 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + CF56C02D0DA8F5E60905D7CBFC2828C3 /* LayoutGuide+MASAdditions.h in Headers */, + F9E1C0898609C045246BD0E0C93E26B0 /* LayoutGuide+MASShorthandAdditions.h in Headers */, + 32C47F4F9EC749FCBC28A4BCB3599A77 /* MASCompositeConstraint.h in Headers */, + 18BBFC91DC52B7E491AD40E884F99FA5 /* MASConstraint+Private.h in Headers */, + FAEC9B002AB74B29D9A108A1ECC67056 /* MASConstraint.h in Headers */, + AFA0CA5DFE3673B8D2E37A2B3A4528BE /* MASConstraintMaker.h in Headers */, + 47BA6E07A9AEBBAD52E5F15A033C864A /* MASLayoutConstraint.h in Headers */, + D8E614EDAA6E90ACCD4020CDEF64FB08 /* Masonry.h in Headers */, + 1528461638FECB52FE7EE250B23806FA /* MASUtilities.h in Headers */, + 276339BBEAE2F06F12EA19FF6BAA6F33 /* MASViewAttribute.h in Headers */, + C8DDC08BD15D8DD739AE3CF79C5D7507 /* MASViewConstraint.h in Headers */, + B819BE48290A13E9CD053F018F294ED4 /* NSArray+MASAdditions.h in Headers */, + 32AB00AC549EAE7537CB60F40224320D /* NSArray+MASShorthandAdditions.h in Headers */, + E8AD769E477F1E7FADE2326F433ADB12 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */, + B6C36294D61D4423CC9B49A740BF688F /* View+MASAdditions.h in Headers */, + 73AC6EBD206F2AA9370C1032889C0861 /* View+MASShorthandAdditions.h in Headers */, + BD34E05A130785C83EE6C4CBD584F3DD /* ViewController+MASAdditions.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 46D68D26DCAAC4D999D549BA45F0B0EC /* Expecta */ = { + 1EB974C903C080797FBCEF670047E33B /* Pods-MasonryTestsLoader */ = { isa = PBXNativeTarget; - buildConfigurationList = D88EDEBF3855FDEF25FC2B2C9BC585A7 /* Build configuration list for PBXNativeTarget "Expecta" */; + buildConfigurationList = 5BADC7950A1D2B159E592407EE38F75F /* Build configuration list for PBXNativeTarget "Pods-MasonryTestsLoader" */; buildPhases = ( - 5A1715485AF02533C3EE06033E9DA73F /* Sources */, - 03F8C9DE4B5918EEA35CE61AA3A1186A /* Frameworks */, - 05E58D356A38DD487823D5BE24334920 /* Headers */, + 77F49828BC4A5B64BF07461BD891ED60 /* Headers */, + 522C28592E971A53A2BEF1163D55198B /* Sources */, + 42B4066E17B7664B364B444935A85699 /* Frameworks */, + 46EB2E00001350 /* Export Environment Vars */, ); buildRules = ( ); dependencies = ( + 057A68E9FAF588ED6C778A4A1FA31612 /* PBXTargetDependency */, ); - name = Expecta; - productName = Expecta; - productReference = 2A7DB9040882B1058689C275628BAD96 /* libExpecta.a */; + name = "Pods-MasonryTestsLoader"; + productName = "Pods-MasonryTestsLoader"; + productReference = A5E5EBA381830646070498CBB04C9A0F /* libPods-MasonryTestsLoader.a */; productType = "com.apple.product-type.library.static"; }; - 9DC8D9E02903E93BD0B2FEC9D846EA20 /* Masonry */ = { + 4F9B6E57365E2E1CF824AB917B947647 /* Pods-Masonry iOS Examples */ = { isa = PBXNativeTarget; - buildConfigurationList = 34CAE1CB89EDBF2E53735CC5D4E5E69F /* Build configuration list for PBXNativeTarget "Masonry" */; + buildConfigurationList = AD4AF911C523007E3D261E54D0E99A6C /* Build configuration list for PBXNativeTarget "Pods-Masonry iOS Examples" */; buildPhases = ( - B23F63142B50E8F550DD2612D6EC304E /* Sources */, - 6FD8312A1AEB348F49A81C438DB25115 /* Frameworks */, - 7B091D57BCA2DBE1E64B837A161E9E23 /* Headers */, + 590C8A0DC5CE91691FCD4DB992C9F2FE /* Headers */, + 362CC59767AC23E0D5095DE6038DE4F6 /* Sources */, + 103342CF1962589237E84DF9EC6C3CDF /* Frameworks */, ); buildRules = ( ); dependencies = ( + C90DCFA0446E01682D7A22E9B7373515 /* PBXTargetDependency */, ); - name = Masonry; - productName = Masonry; - productReference = 2B6A8C9B5A40329ADEFB0567ED8489DC /* libMasonry.a */; + name = "Pods-Masonry iOS Examples"; + productName = "Pods-Masonry iOS Examples"; + productReference = 034FBFCB448F9D15F7570093A95EF0C2 /* libPods-Masonry iOS Examples.a */; productType = "com.apple.product-type.library.static"; }; - B179403FF6D25C7B7A20B6BC7BB7D496 /* Pods-MasonryTestsLoader */ = { + 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */ = { isa = PBXNativeTarget; - buildConfigurationList = 84EA7C388F7334394620E2B60F337AF0 /* Build configuration list for PBXNativeTarget "Pods-MasonryTestsLoader" */; + buildConfigurationList = F04212732E1333A0AFE2F0A294C51A8F /* Build configuration list for PBXNativeTarget "Masonry" */; buildPhases = ( - DFE87F186448CBCB3F82C8AF4CFC35FA /* Sources */, - 583B8AB450D47A22AD844DA398F34FCC /* Frameworks */, - 0298D5A9AEDE52C4B23B10839B5B4F22 /* Export Environment Vars */, + F133CC7894BED89F6358A098BF49E671 /* Headers */, + 6220823A72D2AC9715B7D3F020D96551 /* Sources */, + C4B17D0D2BB73F0DFCDE7639BEB92A99 /* Frameworks */, ); buildRules = ( ); dependencies = ( - C2B6764EE104DB246A756A4DFE11B8D7 /* PBXTargetDependency */, ); - name = "Pods-MasonryTestsLoader"; - productName = "Pods-MasonryTestsLoader"; - productReference = C4EC8E6D70CF2CC9E094524A6560BC80 /* libPods-MasonryTestsLoader.a */; + name = Masonry; + productName = Masonry; + productReference = 1FFED36A657123030ABB700256D73F15 /* libMasonry.a */; productType = "com.apple.product-type.library.static"; }; - ED9816227181DEA06E7E727FF25B471D /* Pods-Masonry iOS Examples */ = { + BDB18881500F85658412404DCDEC056C /* Pods-Masonry iOS Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 315B20EF5C9788CF371A2375E2025660 /* Build configuration list for PBXNativeTarget "Pods-Masonry iOS Examples" */; + buildConfigurationList = FC175A61101A34685A53383659CC4278 /* Build configuration list for PBXNativeTarget "Pods-Masonry iOS Tests" */; buildPhases = ( - 2AC3450D42E3A3D2F5901AE7C9035C9E /* Sources */, - A3EB68BB62C219069E6DBA1A070D7F3F /* Frameworks */, + C26D47D31257D6157E79A579CA3A7110 /* Headers */, + 49B543AA319EB2131430961BEFD04A96 /* Sources */, + B6A2C4B44C0492964B11825B87F336A9 /* Frameworks */, ); buildRules = ( ); dependencies = ( - 3D91A82FDB882886527EEF10899EA5B6 /* PBXTargetDependency */, + 504F97CED4909AAB7685533E7AC64A01 /* PBXTargetDependency */, + A062DC38030E2EF7611D094C49859E11 /* PBXTargetDependency */, ); - name = "Pods-Masonry iOS Examples"; - productName = "Pods-Masonry iOS Examples"; - productReference = 8B4562385452B8EF12C3E0EFC2E07D12 /* libPods-Masonry iOS Examples.a */; + name = "Pods-Masonry iOS Tests"; + productName = "Pods-Masonry iOS Tests"; + productReference = 17242E03658EDAE3CC8E0FFA33C92566 /* libPods-Masonry iOS Tests.a */; productType = "com.apple.product-type.library.static"; }; - F851684D769DB63C33469D937E0F9C64 /* Pods-Masonry iOS Tests */ = { + DC371B7477C88184274EC6710690F97C /* Expecta */ = { isa = PBXNativeTarget; - buildConfigurationList = 403F400D236646D1D85497936B6572D1 /* Build configuration list for PBXNativeTarget "Pods-Masonry iOS Tests" */; + buildConfigurationList = 6DED44BA887C7B50F308C1DB11861EC2 /* Build configuration list for PBXNativeTarget "Expecta" */; buildPhases = ( - D74BBCF7C15B95FA4A31681E55A0FE05 /* Sources */, - 9E80CE71F73E7DB19033544A8A4E9F55 /* Frameworks */, + 559DF3BD40FAE2478E30F355A3BE9218 /* Headers */, + 1CDDE2E70F603750F1537E7A8A318C7D /* Sources */, + C966F79C4262300F36CF75EB47C91210 /* Frameworks */, ); buildRules = ( ); dependencies = ( - 91F718810BB49C6036F14791DC0B796B /* PBXTargetDependency */, ); - name = "Pods-Masonry iOS Tests"; - productName = "Pods-Masonry iOS Tests"; - productReference = 10A477660D2D97AEF58A6795020511A9 /* libPods-Masonry iOS Tests.a */; + name = Expecta; + productName = Expecta; + productReference = 08F7F0770B4878B9883B87DCD8569CB4 /* libExpecta.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0830; - LastUpgradeCheck = 0700; + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - English, en, + Base, ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 6B57A62A4ECEF9976CBA3885013FA6AC /* Products */; + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = CC0E280BDB5B31CE1F7BB77E447EA47A /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 46D68D26DCAAC4D999D549BA45F0B0EC /* Expecta */, - 9DC8D9E02903E93BD0B2FEC9D846EA20 /* Masonry */, - ED9816227181DEA06E7E727FF25B471D /* Pods-Masonry iOS Examples */, - F851684D769DB63C33469D937E0F9C64 /* Pods-Masonry iOS Tests */, - B179403FF6D25C7B7A20B6BC7BB7D496 /* Pods-MasonryTestsLoader */, + DC371B7477C88184274EC6710690F97C /* Expecta */, + 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */, + 4F9B6E57365E2E1CF824AB917B947647 /* Pods-Masonry iOS Examples */, + BDB18881500F85658412404DCDEC056C /* Pods-Masonry iOS Tests */, + 1EB974C903C080797FBCEF670047E33B /* Pods-MasonryTestsLoader */, ); }; /* End PBXProject section */ /* Begin PBXShellScriptBuildPhase section */ - 0298D5A9AEDE52C4B23B10839B5B4F22 /* Export Environment Vars */ = { + 46EB2E00001350 /* Export Environment Vars */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( ); name = "Export Environment Vars"; + outputFileListPaths = ( + ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -817,502 +824,528 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 2AC3450D42E3A3D2F5901AE7C9035C9E /* Sources */ = { + 1CDDE2E70F603750F1537E7A8A318C7D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 6DA9AB53FE1CA890DF5FB0468FA0F476 /* Pods-Masonry iOS Examples-dummy.m in Sources */, + DA7B989AFE2B409E9EF6BF04120B8C13 /* EXPBlockDefinedMatcher.m in Sources */, + 6C2B1FA8BDF3452AD5C6E640AE95AA6C /* EXPDoubleTuple.m in Sources */, + B353DEE0F707A17093B0D8A5F53894D9 /* Expecta-dummy.m in Sources */, + 9D96E887F3AF3FCB896F40F6167D03AF /* ExpectaObject.m in Sources */, + 8873174683E2EE234F3A3EB7A9B4F15D /* ExpectaSupport.m in Sources */, + 43163FF5C47E1BAAC12E171C188302E1 /* EXPExpect.m in Sources */, + BCCC03AB3BEC74DAD5170A8441D9BBEC /* EXPFloatTuple.m in Sources */, + 08972BEC745F3895C5FE98732BB0E646 /* EXPMatcherHelpers.m in Sources */, + B7603387DF30944EE2AF64E8AFD9B996 /* EXPMatchers+beCloseTo.m in Sources */, + 6AB635E53472AFA729AD959EB18363B1 /* EXPMatchers+beFalsy.m in Sources */, + 7FD25AE74C165D37BB9909EF2026746C /* EXPMatchers+beginWith.m in Sources */, + 70384A05DD64D46FE1E31969F1C4F88D /* EXPMatchers+beGreaterThan.m in Sources */, + 051D4B5709A6257B6F79D54D9139E812 /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */, + 04E724A97339965ACA4E5D60226DA001 /* EXPMatchers+beIdenticalTo.m in Sources */, + 5A43305F185AD6B24558485ACBAC13D3 /* EXPMatchers+beInstanceOf.m in Sources */, + A3E9D8D3FCC116B9977B4D9D15931763 /* EXPMatchers+beInTheRangeOf.m in Sources */, + 6214814A6B4ED5038353C2DE0F71DE04 /* EXPMatchers+beKindOf.m in Sources */, + DFEEB75EA1B2172C382FA8594ADA0241 /* EXPMatchers+beLessThan.m in Sources */, + 80E371FE77A34E12BA35EE5C7EEC092C /* EXPMatchers+beLessThanOrEqualTo.m in Sources */, + 1CE288226DA4D5164FDE93288F20616B /* EXPMatchers+beNil.m in Sources */, + B5D629B65A97D9E8EF4D5BAA4F40C0FC /* EXPMatchers+beSubclassOf.m in Sources */, + F74BF06DBC15BB2A17E66943831132C2 /* EXPMatchers+beSupersetOf.m in Sources */, + 1222560B913CB9C9C0D14221D02C8306 /* EXPMatchers+beTruthy.m in Sources */, + 3FB675C0E73B6F8058EA1467E1A33C16 /* EXPMatchers+conformTo.m in Sources */, + CAE8D9E60604DD9EEC6F00A0E01E0C4F /* EXPMatchers+contain.m in Sources */, + 69349BECD39FBA209D2ECA0AFE6550AE /* EXPMatchers+endWith.m in Sources */, + BD769EA7F521A62B01BA7C52FBFE218B /* EXPMatchers+equal.m in Sources */, + EF07E681556BC7689CCED3B38434F00E /* EXPMatchers+haveCountOf.m in Sources */, + 8E971E2458163B8D717523B8D8BC892D /* EXPMatchers+match.m in Sources */, + 477C77170BBEBE5DA4591B9C45A375B4 /* EXPMatchers+postNotification.m in Sources */, + D33C600E6B5E582C65F3EF397CAD3338 /* EXPMatchers+raise.m in Sources */, + FC03EE048F70F1E14A2F78836CA26D49 /* EXPMatchers+raiseWithReason.m in Sources */, + D1BF0D14765A5F2B82A53A58E7912DF5 /* EXPMatchers+respondTo.m in Sources */, + C5ABCAD032D262081CC9D9A46F2315E4 /* EXPUnsupportedObject.m in Sources */, + EE62D51B4F4A55731CCD546D25BA1064 /* NSValue+Expecta.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5A1715485AF02533C3EE06033E9DA73F /* Sources */ = { + 362CC59767AC23E0D5095DE6038DE4F6 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CC995F4F36E9D6237AFC6F729364B867 /* EXPBlockDefinedMatcher.m in Sources */, - 045E77138594FCD0492D74EE7C22AC90 /* EXPDoubleTuple.m in Sources */, - E95DE019212836608A35BF3270AADF17 /* Expecta-dummy.m in Sources */, - A904D2D6242F68CC3B959E2B0FC8B4F9 /* ExpectaObject.m in Sources */, - C091203A57422574B3263D1E9BA53A87 /* ExpectaSupport.m in Sources */, - 1C74D210067A2D584AA672E61F246ECC /* EXPExpect.m in Sources */, - 643DE0287F1066D083368EAC928DF078 /* EXPFloatTuple.m in Sources */, - 63CDCCAC82CBC33021220531D93213A2 /* EXPMatcherHelpers.m in Sources */, - 4943F7D828D56A874ACCA7AC312F863B /* EXPMatchers+beCloseTo.m in Sources */, - C498F24E736A80A0F6C440DBC33AF494 /* EXPMatchers+beFalsy.m in Sources */, - C670343470EAC260E60ABD463CC39E2D /* EXPMatchers+beginWith.m in Sources */, - 2C944499E3BB44E17E10959A76BBAEA3 /* EXPMatchers+beGreaterThan.m in Sources */, - CDA268F5B643324DD61A0E25BD4179ED /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */, - B709C0890B67EB6C1AB9B9738CDBEEC6 /* EXPMatchers+beIdenticalTo.m in Sources */, - B2880B5D7D91AACFCEF345934CFEBA55 /* EXPMatchers+beInstanceOf.m in Sources */, - 28BC58EE3C7374C4C2DEF6D029011C84 /* EXPMatchers+beInTheRangeOf.m in Sources */, - 885C2534832AF6B1DFA98FA19C4D9994 /* EXPMatchers+beKindOf.m in Sources */, - A12B39559E464A1089E4389274973616 /* EXPMatchers+beLessThan.m in Sources */, - 2523657BEE249A532CDFD495AC911F39 /* EXPMatchers+beLessThanOrEqualTo.m in Sources */, - 0435080233FFD861A266AB43BE3279D3 /* EXPMatchers+beNil.m in Sources */, - 71FBC2F8907E29EB767026E6A08F7EEF /* EXPMatchers+beSubclassOf.m in Sources */, - 391226D83570CA724B533A2C609A5EF5 /* EXPMatchers+beSupersetOf.m in Sources */, - 1E2343F7AE04C5D386CCD455E84F13E0 /* EXPMatchers+beTruthy.m in Sources */, - 58E38027B0A4F6CA7BE54F0AE8D4885B /* EXPMatchers+conformTo.m in Sources */, - FE84239BE923F217FD38E45B4F770EFD /* EXPMatchers+contain.m in Sources */, - F8E39087737225714939DB0252FB1114 /* EXPMatchers+endWith.m in Sources */, - 863C5CC8F4698A0C85AB53C9B072D889 /* EXPMatchers+equal.m in Sources */, - 24FF4A3B66A2F383BA14790790108406 /* EXPMatchers+haveCountOf.m in Sources */, - 0FE4C580D709657792E5661E74F171D5 /* EXPMatchers+match.m in Sources */, - D94F3CDE976C052BF0BD112E257A7F19 /* EXPMatchers+postNotification.m in Sources */, - A5CB8C92268FCAC7B00F12EE55B43338 /* EXPMatchers+raise.m in Sources */, - 1D622FBC8A4262E6B398F5CCCB1D9650 /* EXPMatchers+raiseWithReason.m in Sources */, - 5D50DA13C7A8B2AF549AA4F05E69F9F4 /* EXPMatchers+respondTo.m in Sources */, - ED087996824EE3256B222E3BAEBAB14D /* EXPUnsupportedObject.m in Sources */, - 4EB308BF802E6F21BABDA8B8718CC7AB /* NSValue+Expecta.m in Sources */, + 1A4BC62A5EBA7F92D2074FFAADC4E6B5 /* Pods-Masonry iOS Examples-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - B23F63142B50E8F550DD2612D6EC304E /* Sources */ = { + 49B543AA319EB2131430961BEFD04A96 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 156874012669378F00656904 /* LayoutGuide+MASShorthandAdditions.m in Sources */, - 156873FE2669378F00656904 /* NSArray+MASShorthandAdditions.m in Sources */, - E220D02AE7833F8B9202B0304FFBB644 /* MASCompositeConstraint.m in Sources */, - 2D814705CE041C701138BD9147CB21AA /* MASConstraint.m in Sources */, - EBFA48D334098E6BAB801E6FB8F756C0 /* MASConstraintMaker.m in Sources */, - 1AF47B7901796231A318934C2F0DDC04 /* MASLayoutConstraint.m in Sources */, - B66BCA2DD1043A4356B5286F346F8049 /* Masonry-dummy.m in Sources */, - A8A60B0CEECC7D7C9D8CA6B2DC811C64 /* MASViewAttribute.m in Sources */, - 07B309A8727E5DBE05DB1F644F7B8D8A /* MASViewConstraint.m in Sources */, - E846C94664199B4B993866C557EEC20D /* NSArray+MASAdditions.m in Sources */, - 156873FB2669378F00656904 /* View+MASShorthandAdditions.m in Sources */, - 156873FC2669378F00656904 /* LayoutGuide+MASAdditions.m in Sources */, - 80408C0CF9D13D89E500446267DD0041 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, - 409B7E241957B5C0ADFA4DEA82CDA7AB /* View+MASAdditions.m in Sources */, - D2BD7E6904BDD20074AB5A8B04400EB2 /* ViewController+MASAdditions.m in Sources */, - 156874002669378F00656904 /* MASUtilities.m in Sources */, + A157FC2DD0DD20D4214ABAF18EA92FD2 /* Pods-Masonry iOS Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D74BBCF7C15B95FA4A31681E55A0FE05 /* Sources */ = { + 522C28592E971A53A2BEF1163D55198B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1F002B6CD1662BADA6556D76FFFE0B96 /* Pods-Masonry iOS Tests-dummy.m in Sources */, + DFAAA5ED8680564064326FAFC53E3482 /* Pods-MasonryTestsLoader-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - DFE87F186448CBCB3F82C8AF4CFC35FA /* Sources */ = { + 6220823A72D2AC9715B7D3F020D96551 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - AC80F28E4B250E6535484F5269566FF0 /* Pods-MasonryTestsLoader-dummy.m in Sources */, + 03A812302F4831B26EA5D4090B743A8E /* LayoutGuide+MASAdditions.m in Sources */, + 4EBE6AD128FFDF53A3FD68082B37B051 /* LayoutGuide+MASShorthandAdditions.m in Sources */, + D8A570B2BE3BD8D7BB992CCE3FC27319 /* MASCompositeConstraint.m in Sources */, + E3E4EB4224D8C15DFC67F4FD3EF34E32 /* MASConstraint.m in Sources */, + 7C6E59F6F0F3A29811C4CACC9928BECF /* MASConstraintMaker.m in Sources */, + 631AFE3D6BED4FE218ADBF212982DF60 /* MASLayoutConstraint.m in Sources */, + 523CE30C095A2236A550FDB03991970C /* Masonry-dummy.m in Sources */, + CE16D7663764375961128F92A95710F1 /* MASUtilities.m in Sources */, + A1FE1F032E5FC3DD14514274810CB920 /* MASViewAttribute.m in Sources */, + AA33310A145547AE371A726E9977CFA6 /* MASViewConstraint.m in Sources */, + 3160B54E02BA3F57402FD9D1864922C0 /* NSArray+MASAdditions.m in Sources */, + 102AE0CDC0AFA43305803BE841A059DB /* NSArray+MASShorthandAdditions.m in Sources */, + 9DDE1BDD1C6207009250EDA6C41F0621 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, + 506AEBBD21A6F1D89B5AA6D1EFA1C62B /* View+MASAdditions.m in Sources */, + A90ED8FE67ED58BD5E6A858A359578EC /* View+MASShorthandAdditions.m in Sources */, + 71386C6E62CC5331AA1D008197CEF602 /* ViewController+MASAdditions.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 3D91A82FDB882886527EEF10899EA5B6 /* PBXTargetDependency */ = { + 057A68E9FAF588ED6C778A4A1FA31612 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Masonry; - target = 9DC8D9E02903E93BD0B2FEC9D846EA20 /* Masonry */; - targetProxy = AA5F0BBF6F9F116C791133368DE92755 /* PBXContainerItemProxy */; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = D561D18B09F2A99E2E81DEC613CFDE0B /* PBXContainerItemProxy */; }; - 91F718810BB49C6036F14791DC0B796B /* PBXTargetDependency */ = { + 504F97CED4909AAB7685533E7AC64A01 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Expecta; - target = 46D68D26DCAAC4D999D549BA45F0B0EC /* Expecta */; - targetProxy = 3A31C048AC5B5E5AB145E49BF610B911 /* PBXContainerItemProxy */; + target = DC371B7477C88184274EC6710690F97C /* Expecta */; + targetProxy = C5E151CE4DDEA5E3770EDA456DE348CA /* PBXContainerItemProxy */; }; - C2B6764EE104DB246A756A4DFE11B8D7 /* PBXTargetDependency */ = { + A062DC38030E2EF7611D094C49859E11 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Masonry; - target = 9DC8D9E02903E93BD0B2FEC9D846EA20 /* Masonry */; - targetProxy = 5E51BB7C485C3BB1001A7E9EF94414CF /* PBXContainerItemProxy */; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = B75A0CE47F1335ADF22BFFE2CE4BC651 /* PBXContainerItemProxy */; + }; + C90DCFA0446E01682D7A22E9B7373515 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Masonry; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = 72CE870760A45916E07816B4B7324986 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 06C735D53481C37742C3736F2A7D5661 /* Debug */ = { + 0894506F2DDE0D8E428DD9E45D1A91CC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 489F09523F5700F4F414FA98E0BDEEE4 /* Expecta.xcconfig */; + baseConfigurationReference = 37C9A4075B3D6A87244FD6442E426342 /* Expecta.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; - MTL_ENABLE_DEBUG_INFO = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_MODULE_NAME = Expecta; + PRODUCT_NAME = Expecta; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - }; - name = Debug; - }; - 0D04C9824688FBC954D824C0404A3E00 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AD6D89D8C414349AAD70BD448A0EB42D /* Pods-MasonryTestsLoader.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_NO_COMMON_BLOCKS = YES; - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - 1C7D17A37D091C98D2F0DD886C3A9320 /* Debug */ = { + 25AD9454612BF454A1E3DC4CD4FA8C6D /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_DEBUG=1", "DEBUG=1", "$(inherited)", ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; - TVOS_DEPLOYMENT_TARGET = 9.0; }; name = Debug; }; - 34FE9531DA9AF2820790339988D5FF41 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 3640836F61E86EC291C35C10A0C6C895 /* Release */ = { + 3C9EEE9A3D005FE978445CACD1281EA4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D17CA42B2DBD2AB2BBA3CBB7E2205968 /* Masonry.xcconfig */; + baseConfigurationReference = F7CB9B0B3F8680F35B9EC71EABF62ED6 /* Expecta.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; - MTL_ENABLE_DEBUG_INFO = NO; + GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_MODULE_NAME = Expecta; + PRODUCT_NAME = Expecta; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Release; + name = Debug; }; - 4563D8BBE880D823F6BD5DDF706D753C /* Release */ = { + 4B40799AB99B58ECD7EA365FF2CA12C2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 489F09523F5700F4F414FA98E0BDEEE4 /* Expecta.xcconfig */; + baseConfigurationReference = 4C6A4D44BC66DA17B7398BFA64ADC39A /* Pods-Masonry iOS Tests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; - MTL_ENABLE_DEBUG_INFO = NO; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACH_O_TYPE = staticlib; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - 8B6F0C8DE4F0C3C276DE0869916A9854 /* Debug */ = { + 4F14F6841BFF23717068C101F3F37CE8 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D17CA42B2DBD2AB2BBA3CBB7E2205968 /* Masonry.xcconfig */; + baseConfigurationReference = 82C52D4DED5698D760C6C085693FFE20 /* Pods-Masonry iOS Tests.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; - MTL_ENABLE_DEBUG_INFO = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACH_O_TYPE = staticlib; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - BEFC70E6C48ED31E2194921A7560D273 /* Release */ = { + 55CA81C3744D28C6840F8540AE610FDF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1B998D4CCC665C40E8A45CF07DFD7ABC /* Pods-Masonry iOS Examples.release.xcconfig */; + baseConfigurationReference = FBB3118652D20683E364309C03238B2E /* Pods-MasonryTestsLoader.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - DA2C49C7DD25DEB1B2FD7E82FE00F85A /* Debug */ = { + 586AF7732B2F6C86786A6CA55B6E3A02 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF1B79566A439B7A68A81F499EBFDDE1 /* Pods-Masonry iOS Tests.debug.xcconfig */; + baseConfigurationReference = 109B3FC0CAC2B4FD7E9BC1B1174C4152 /* Masonry.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; + GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = Masonry; + PRODUCT_NAME = Masonry; + PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - E0ED321AE074A8803A400A79BF0B2A54 /* Debug */ = { + 8617D9D2F2E34B66E37D3B1858B5B6C0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 41073685DCEF4DD54806A297165DB39F /* Pods-MasonryTestsLoader.debug.xcconfig */; + baseConfigurationReference = 078F70BA7D353AFB208803CB51C4358A /* Pods-Masonry iOS Examples.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_NO_COMMON_BLOCKS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - E7BA51E64E8E497287675229455FF9BE /* Release */ = { + CA547D2C7E9A8A153DC2B27FBE00B112 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 590084C07434815AE5BEC2E76CD54154 /* Pods-Masonry iOS Tests.release.xcconfig */; buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; - MACH_O_TYPE = staticlib; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + D5012492EFB5A14C706E2145ED809494 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2D07A6AA6C9E025EE07A84762AFCFA0C /* Pods-Masonry iOS Examples.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACH_O_TYPE = staticlib; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - FE787B4338C5C609AA6C2113045B53EB /* Debug */ = { + DBF56C7DD2CA406959EFB14EF918A1ED /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C5ABB1C6CB3F9F99597CCF6727731A7B /* Pods-Masonry iOS Examples.debug.xcconfig */; + baseConfigurationReference = 6E2F6452C6FBF7416CC1FDCA290F5E96 /* Pods-MasonryTestsLoader.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + F551C51950B1AA7EAD1D4235481F3B39 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D5010834CD44C2DF2E07FD32C2F021D4 /* Masonry.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/Masonry/Masonry-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = Masonry; + PRODUCT_NAME = Masonry; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1C7D17A37D091C98D2F0DD886C3A9320 /* Debug */, - 34FE9531DA9AF2820790339988D5FF41 /* Release */, + 25AD9454612BF454A1E3DC4CD4FA8C6D /* Debug */, + CA547D2C7E9A8A153DC2B27FBE00B112 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 315B20EF5C9788CF371A2375E2025660 /* Build configuration list for PBXNativeTarget "Pods-Masonry iOS Examples" */ = { + 5BADC7950A1D2B159E592407EE38F75F /* Build configuration list for PBXNativeTarget "Pods-MasonryTestsLoader" */ = { isa = XCConfigurationList; buildConfigurations = ( - FE787B4338C5C609AA6C2113045B53EB /* Debug */, - BEFC70E6C48ED31E2194921A7560D273 /* Release */, + DBF56C7DD2CA406959EFB14EF918A1ED /* Debug */, + 55CA81C3744D28C6840F8540AE610FDF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 34CAE1CB89EDBF2E53735CC5D4E5E69F /* Build configuration list for PBXNativeTarget "Masonry" */ = { + 6DED44BA887C7B50F308C1DB11861EC2 /* Build configuration list for PBXNativeTarget "Expecta" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8B6F0C8DE4F0C3C276DE0869916A9854 /* Debug */, - 3640836F61E86EC291C35C10A0C6C895 /* Release */, + 3C9EEE9A3D005FE978445CACD1281EA4 /* Debug */, + 0894506F2DDE0D8E428DD9E45D1A91CC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 403F400D236646D1D85497936B6572D1 /* Build configuration list for PBXNativeTarget "Pods-Masonry iOS Tests" */ = { + AD4AF911C523007E3D261E54D0E99A6C /* Build configuration list for PBXNativeTarget "Pods-Masonry iOS Examples" */ = { isa = XCConfigurationList; buildConfigurations = ( - DA2C49C7DD25DEB1B2FD7E82FE00F85A /* Debug */, - E7BA51E64E8E497287675229455FF9BE /* Release */, + 8617D9D2F2E34B66E37D3B1858B5B6C0 /* Debug */, + D5012492EFB5A14C706E2145ED809494 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 84EA7C388F7334394620E2B60F337AF0 /* Build configuration list for PBXNativeTarget "Pods-MasonryTestsLoader" */ = { + F04212732E1333A0AFE2F0A294C51A8F /* Build configuration list for PBXNativeTarget "Masonry" */ = { isa = XCConfigurationList; buildConfigurations = ( - E0ED321AE074A8803A400A79BF0B2A54 /* Debug */, - 0D04C9824688FBC954D824C0404A3E00 /* Release */, + F551C51950B1AA7EAD1D4235481F3B39 /* Debug */, + 586AF7732B2F6C86786A6CA55B6E3A02 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D88EDEBF3855FDEF25FC2B2C9BC585A7 /* Build configuration list for PBXNativeTarget "Expecta" */ = { + FC175A61101A34685A53383659CC4278 /* Build configuration list for PBXNativeTarget "Pods-Masonry iOS Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 06C735D53481C37742C3736F2A7D5661 /* Debug */, - 4563D8BBE880D823F6BD5DDF706D753C /* Release */, + 4F14F6841BFF23717068C101F3F37CE8 /* Debug */, + 4B40799AB99B58ECD7EA365FF2CA12C2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; } diff --git a/Pods/Target Support Files/Masonry/Masonry-prefix.pch b/Pods/Target Support Files/Masonry/Masonry-prefix.pch index e5e37e2a..beb2a244 100644 --- a/Pods/Target Support Files/Masonry/Masonry-prefix.pch +++ b/Pods/Target Support Files/Masonry/Masonry-prefix.pch @@ -1,10 +1,5 @@ #ifdef __OBJC__ -#import -#if TARGET_OS_IPHONE || TARGET_OS_TV #import -#elif TARGET_OS_MAC -#import -#endif #else #ifndef FOUNDATION_EXPORT #if defined(__cplusplus) diff --git a/Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples.debug.xcconfig b/Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples.debug.xcconfig index ccf6334a..439f00ad 100644 --- a/Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples.debug.xcconfig +++ b/Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples.debug.xcconfig @@ -1,9 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Masonry" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Masonry" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/.. PODS_ROOT = ${SRCROOT}/../Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples.release.xcconfig b/Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples.release.xcconfig index ccf6334a..439f00ad 100644 --- a/Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples.release.xcconfig +++ b/Pods/Target Support Files/Pods-Masonry iOS Examples/Pods-Masonry iOS Examples.release.xcconfig @@ -1,9 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Masonry" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Masonry" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/.. PODS_ROOT = ${SRCROOT}/../Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-acknowledgements.markdown b/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-acknowledgements.markdown index c6be2313..8f585ddd 100644 --- a/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-acknowledgements.markdown @@ -1,6 +1,28 @@ # Acknowledgements This application makes use of the following third party libraries: +## Masonry + +Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + ## Expecta Copyright (c) 2011-2015 Specta Team - https://github.com/specta diff --git a/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-acknowledgements.plist b/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-acknowledgements.plist index e46fb587..8e1a978d 100644 --- a/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-acknowledgements.plist @@ -12,6 +12,34 @@ Type PSGroupSpecifier + + FooterText + Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + License + MIT + Title + Masonry + Type + PSGroupSpecifier + FooterText Copyright (c) 2011-2015 Specta Team - https://github.com/specta diff --git a/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests.debug.xcconfig b/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests.debug.xcconfig index c2a06956..ebfa4868 100644 --- a/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests.debug.xcconfig @@ -1,10 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Masonry" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Expecta" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Expecta" -framework "Foundation" -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Expecta" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Expecta" -l"Masonry" -framework "Foundation" -framework "XCTest" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/.. PODS_ROOT = ${SRCROOT}/../Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests.release.xcconfig b/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests.release.xcconfig index c2a06956..ebfa4868 100644 --- a/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests.release.xcconfig +++ b/Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests.release.xcconfig @@ -1,10 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Masonry" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Expecta" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Expecta" -framework "Foundation" -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Expecta" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Expecta" -l"Masonry" -framework "Foundation" -framework "XCTest" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/.. PODS_ROOT = ${SRCROOT}/../Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader.debug.xcconfig b/Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader.debug.xcconfig index ccf6334a..439f00ad 100644 --- a/Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader.debug.xcconfig +++ b/Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader.debug.xcconfig @@ -1,9 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Masonry" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Masonry" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/.. PODS_ROOT = ${SRCROOT}/../Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader.release.xcconfig b/Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader.release.xcconfig index ccf6334a..439f00ad 100644 --- a/Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader.release.xcconfig +++ b/Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader.release.xcconfig @@ -1,9 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Masonry" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Masonry" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Expecta" -isystem "${PODS_ROOT}/Headers/Public/Masonry" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Masonry" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/.. PODS_ROOT = ${SRCROOT}/../Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Tests/Masonry Tests.xcodeproj/project.pbxproj b/Tests/Masonry Tests.xcodeproj/project.pbxproj index 6db7e338..a4eefa7a 100644 --- a/Tests/Masonry Tests.xcodeproj/project.pbxproj +++ b/Tests/Masonry Tests.xcodeproj/project.pbxproj @@ -203,8 +203,6 @@ DD7179FA18442A6400FAA7A8 /* Sources */, DD7179FB18442A6400FAA7A8 /* Frameworks */, DD7179FC18442A6400FAA7A8 /* Resources */, - DB244E91C65945F39DE14644 /* [CP] Copy Pods Resources */, - 5B07E509D5304034616D89F7 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -223,8 +221,6 @@ DD717A2E18442ADC00FAA7A8 /* Sources */, DD717A2F18442ADC00FAA7A8 /* Frameworks */, DD717A3018442ADC00FAA7A8 /* Resources */, - DC72D687A4114D04BBA75896 /* [CP] Copy Pods Resources */, - 5AEE51071FAE8B3BB28C9E5E /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -305,36 +301,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 5AEE51071FAE8B3BB28C9E5E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 5B07E509D5304034616D89F7 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 9F27CD2D75E246C0A787A688 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -353,36 +319,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - DB244E91C65945F39DE14644 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-MasonryTestsLoader/Pods-MasonryTestsLoader-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - DC72D687A4114D04BBA75896 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/../Pods/Target Support Files/Pods-Masonry iOS Tests/Pods-Masonry iOS Tests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/Tests/Specs/MASConstraintDelegateMock.h b/Tests/Specs/MASConstraintDelegateMock.h index e52c6cb7..29ab3daa 100644 --- a/Tests/Specs/MASConstraintDelegateMock.h +++ b/Tests/Specs/MASConstraintDelegateMock.h @@ -6,7 +6,7 @@ // Copyright (c) 2013 Jonas Budelmann. All rights reserved. // -#import "MASConstraint+Private.h" +#import "MASViewConstraint.h" @interface MASConstraintDelegateMock : NSObject diff --git a/Tests/Specs/MASConstraintDelegateMock.m b/Tests/Specs/MASConstraintDelegateMock.m index 59f94a2e..fa01af3b 100644 --- a/Tests/Specs/MASConstraintDelegateMock.m +++ b/Tests/Specs/MASConstraintDelegateMock.m @@ -7,7 +7,6 @@ // #import "MASConstraintDelegateMock.h" -#import "MASViewConstraint.h" @implementation MASConstraintDelegateMock diff --git a/Tests/Specs/MASConstraintMakerSpec.m b/Tests/Specs/MASConstraintMakerSpec.m index a4794d1b..de135d18 100644 --- a/Tests/Specs/MASConstraintMakerSpec.m +++ b/Tests/Specs/MASConstraintMakerSpec.m @@ -9,7 +9,6 @@ #import "MASConstraintMaker.h" #import "MASCompositeConstraint.h" #import "MASViewConstraint.h" -#import "MASConstraint+Private.h" @interface MASConstraintMaker () @@ -251,4 +250,4 @@ - (void)testAttributeChainingWithViewConstraint { expect(childConstraint.delegate).to.beIdenticalTo(composite); } -SpecEnd \ No newline at end of file +SpecEnd diff --git a/Tests/Specs/MASViewConstraintSpec.m b/Tests/Specs/MASViewConstraintSpec.m index 6da0091f..444cfb26 100644 --- a/Tests/Specs/MASViewConstraintSpec.m +++ b/Tests/Specs/MASViewConstraintSpec.m @@ -7,7 +7,6 @@ // #import "MASViewConstraint.h" -#import "MASConstraint+Private.h" #import "MASConstraint.h" #import "View+MASAdditions.h" #import "MASConstraintDelegateMock.h" @@ -532,4 +531,4 @@ - (void)testAttributeChainingShouldCallDelegate { expect(delegate.chainedConstraints).to.equal(@[constraint]); } -SpecEnd \ No newline at end of file +SpecEnd From 4ee9477ac342699a3852fd03a047ddda7b4b9ad5 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 13:42:22 +0800 Subject: [PATCH 26/32] replace id with instancetype for init method --- Examples/Masonry iOS Examples/MASExampleAnimatedView.m | 2 +- Examples/Masonry iOS Examples/MASExampleArrayView.m | 2 +- .../Masonry iOS Examples/MASExampleAttributeChainingView.m | 2 +- Examples/Masonry iOS Examples/MASExampleBasicView.m | 2 +- Examples/Masonry iOS Examples/MASExampleConstantsView.m | 2 +- Examples/Masonry iOS Examples/MASExampleDebuggingView.m | 2 +- Examples/Masonry iOS Examples/MASExampleDistributeView.m | 2 +- Examples/Masonry iOS Examples/MASExampleLabelView.m | 2 +- .../MASExampleLayoutGuideViewController.m | 2 +- Examples/Masonry iOS Examples/MASExampleListViewController.m | 2 +- Examples/Masonry iOS Examples/MASExampleRemakeView.m | 2 +- Examples/Masonry iOS Examples/MASExampleScrollView.m | 2 +- Examples/Masonry iOS Examples/MASExampleSidesView.m | 2 +- Examples/Masonry iOS Examples/MASExampleUpdateView.m | 2 +- Examples/Masonry iOS Examples/MASExampleViewController.h | 2 +- Examples/Masonry iOS Examples/MASExampleViewController.m | 2 +- Masonry/MASCompositeConstraint.h | 2 +- Masonry/MASCompositeConstraint.m | 2 +- Masonry/MASConstraint.m | 2 +- Masonry/MASConstraintMaker.h | 4 ++-- Masonry/MASConstraintMaker.m | 4 ++-- Masonry/MASViewAttribute.h | 4 ++-- Masonry/MASViewAttribute.m | 4 ++-- Masonry/MASViewConstraint.h | 2 +- Masonry/MASViewConstraint.m | 2 +- README.md | 2 +- Tests/Specs/MASConstraintDelegateMock.m | 2 +- 27 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Examples/Masonry iOS Examples/MASExampleAnimatedView.m b/Examples/Masonry iOS Examples/MASExampleAnimatedView.m index 9043ddd1..3e3f2e02 100644 --- a/Examples/Masonry iOS Examples/MASExampleAnimatedView.m +++ b/Examples/Masonry iOS Examples/MASExampleAnimatedView.m @@ -18,7 +18,7 @@ @interface MASExampleAnimatedView () @implementation MASExampleAnimatedView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleArrayView.m b/Examples/Masonry iOS Examples/MASExampleArrayView.m index 43ab712a..74c3424a 100644 --- a/Examples/Masonry iOS Examples/MASExampleArrayView.m +++ b/Examples/Masonry iOS Examples/MASExampleArrayView.m @@ -19,7 +19,7 @@ @interface MASExampleArrayView () @implementation MASExampleArrayView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleAttributeChainingView.m b/Examples/Masonry iOS Examples/MASExampleAttributeChainingView.m index 0daae6c1..dd97b9c0 100644 --- a/Examples/Masonry iOS Examples/MASExampleAttributeChainingView.m +++ b/Examples/Masonry iOS Examples/MASExampleAttributeChainingView.m @@ -10,7 +10,7 @@ @implementation MASExampleAttributeChainingView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleBasicView.m b/Examples/Masonry iOS Examples/MASExampleBasicView.m index d6d56aa5..9924372e 100644 --- a/Examples/Masonry iOS Examples/MASExampleBasicView.m +++ b/Examples/Masonry iOS Examples/MASExampleBasicView.m @@ -10,7 +10,7 @@ @implementation MASExampleBasicView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleConstantsView.m b/Examples/Masonry iOS Examples/MASExampleConstantsView.m index ce658dd6..586a5994 100644 --- a/Examples/Masonry iOS Examples/MASExampleConstantsView.m +++ b/Examples/Masonry iOS Examples/MASExampleConstantsView.m @@ -10,7 +10,7 @@ @implementation MASExampleConstantsView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleDebuggingView.m b/Examples/Masonry iOS Examples/MASExampleDebuggingView.m index 25d94c6b..2bda96b2 100644 --- a/Examples/Masonry iOS Examples/MASExampleDebuggingView.m +++ b/Examples/Masonry iOS Examples/MASExampleDebuggingView.m @@ -10,7 +10,7 @@ @implementation MASExampleDebuggingView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleDistributeView.m b/Examples/Masonry iOS Examples/MASExampleDistributeView.m index f447054b..19dde43b 100644 --- a/Examples/Masonry iOS Examples/MASExampleDistributeView.m +++ b/Examples/Masonry iOS Examples/MASExampleDistributeView.m @@ -10,7 +10,7 @@ @implementation MASExampleDistributeView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleLabelView.m b/Examples/Masonry iOS Examples/MASExampleLabelView.m index 7d2448b7..71326bf8 100644 --- a/Examples/Masonry iOS Examples/MASExampleLabelView.m +++ b/Examples/Masonry iOS Examples/MASExampleLabelView.m @@ -19,7 +19,7 @@ @interface MASExampleLabelView () @implementation MASExampleLabelView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleLayoutGuideViewController.m b/Examples/Masonry iOS Examples/MASExampleLayoutGuideViewController.m index 163a89e7..3839e2d2 100644 --- a/Examples/Masonry iOS Examples/MASExampleLayoutGuideViewController.m +++ b/Examples/Masonry iOS Examples/MASExampleLayoutGuideViewController.m @@ -14,7 +14,7 @@ @interface MASExampleLayoutGuideViewController () @implementation MASExampleLayoutGuideViewController -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleListViewController.m b/Examples/Masonry iOS Examples/MASExampleListViewController.m index 7e3d05c5..6210d24f 100644 --- a/Examples/Masonry iOS Examples/MASExampleListViewController.m +++ b/Examples/Masonry iOS Examples/MASExampleListViewController.m @@ -35,7 +35,7 @@ @interface MASExampleListViewController () @implementation MASExampleListViewController -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleRemakeView.m b/Examples/Masonry iOS Examples/MASExampleRemakeView.m index 35398295..07006ddc 100644 --- a/Examples/Masonry iOS Examples/MASExampleRemakeView.m +++ b/Examples/Masonry iOS Examples/MASExampleRemakeView.m @@ -19,7 +19,7 @@ - (void)toggleButtonPosition; @implementation MASExampleRemakeView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleScrollView.m b/Examples/Masonry iOS Examples/MASExampleScrollView.m index 986c5473..eeac6795 100644 --- a/Examples/Masonry iOS Examples/MASExampleScrollView.m +++ b/Examples/Masonry iOS Examples/MASExampleScrollView.m @@ -23,7 +23,7 @@ @interface MASExampleScrollView () @implementation MASExampleScrollView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleSidesView.m b/Examples/Masonry iOS Examples/MASExampleSidesView.m index 881a72ae..82dea4ac 100644 --- a/Examples/Masonry iOS Examples/MASExampleSidesView.m +++ b/Examples/Masonry iOS Examples/MASExampleSidesView.m @@ -10,7 +10,7 @@ @implementation MASExampleSidesView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleUpdateView.m b/Examples/Masonry iOS Examples/MASExampleUpdateView.m index 261cfa8e..e93b944a 100644 --- a/Examples/Masonry iOS Examples/MASExampleUpdateView.m +++ b/Examples/Masonry iOS Examples/MASExampleUpdateView.m @@ -17,7 +17,7 @@ @interface MASExampleUpdateView () @implementation MASExampleUpdateView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Examples/Masonry iOS Examples/MASExampleViewController.h b/Examples/Masonry iOS Examples/MASExampleViewController.h index 0668563d..af9afa31 100644 --- a/Examples/Masonry iOS Examples/MASExampleViewController.h +++ b/Examples/Masonry iOS Examples/MASExampleViewController.h @@ -10,6 +10,6 @@ @interface MASExampleViewController : UIViewController -- (id)initWithTitle:(NSString *)title viewClass:(Class)viewClass; +- (instancetype)initWithTitle:(NSString *)title viewClass:(Class)viewClass; @end diff --git a/Examples/Masonry iOS Examples/MASExampleViewController.m b/Examples/Masonry iOS Examples/MASExampleViewController.m index ff688ca5..68d76693 100644 --- a/Examples/Masonry iOS Examples/MASExampleViewController.m +++ b/Examples/Masonry iOS Examples/MASExampleViewController.m @@ -17,7 +17,7 @@ @interface MASExampleViewController () @implementation MASExampleViewController -- (id)initWithTitle:(NSString *)title viewClass:(Class)viewClass { +- (instancetype)initWithTitle:(NSString *)title viewClass:(Class)viewClass { self = [super init]; if (!self) return nil; diff --git a/Masonry/MASCompositeConstraint.h b/Masonry/MASCompositeConstraint.h index 25b9c94c..e2093504 100644 --- a/Masonry/MASCompositeConstraint.h +++ b/Masonry/MASCompositeConstraint.h @@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return a composite constraint */ -- (id)initWithChildren:(NSArray *)children; +- (instancetype)initWithChildren:(NSArray *)children; @end diff --git a/Masonry/MASCompositeConstraint.m b/Masonry/MASCompositeConstraint.m index eceac34b..30aa01c8 100644 --- a/Masonry/MASCompositeConstraint.m +++ b/Masonry/MASCompositeConstraint.m @@ -18,7 +18,7 @@ @interface MASCompositeConstraint () @implementation MASCompositeConstraint -- (id)initWithChildren:(NSArray *)children { +- (instancetype)initWithChildren:(NSArray *)children { self = [super init]; if (!self) return nil; diff --git a/Masonry/MASConstraint.m b/Masonry/MASConstraint.m index 099d6dfe..ec7f898d 100644 --- a/Masonry/MASConstraint.m +++ b/Masonry/MASConstraint.m @@ -17,7 +17,7 @@ @implementation MASConstraint #pragma mark - Init -- (id)init { +- (instancetype)init { NSAssert(![self isMemberOfClass:[MASConstraint class]], @"MASConstraint is an abstract class, you should not instantiate it directly."); return [super init]; } diff --git a/Masonry/MASConstraintMaker.h b/Masonry/MASConstraintMaker.h index 92aefe19..dfafbe23 100644 --- a/Masonry/MASConstraintMaker.h +++ b/Masonry/MASConstraintMaker.h @@ -163,9 +163,9 @@ NS_ASSUME_NONNULL_BEGIN * * @return a new MASConstraintMaker */ -- (id)initWithView:(MAS_VIEW *)view; +- (instancetype)initWithView:(MAS_VIEW *)view; -- (id)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide API_AVAILABLE(macos(10.11), ios(9.0)); +- (instancetype)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide API_AVAILABLE(macos(10.11), ios(9.0)); /** * Calls install method on any MASConstraints which have been created by this maker diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index d47abdab..8187121b 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -24,7 +24,7 @@ @interface MASConstraintMaker () @implementation MASConstraintMaker -- (id)initWithView:(MAS_VIEW *)view { +- (instancetype)initWithView:(MAS_VIEW *)view { self = [super init]; if (!self) return nil; @@ -34,7 +34,7 @@ - (id)initWithView:(MAS_VIEW *)view { return self; } -- (id)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide { +- (instancetype)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide { NSAssert(layoutGuide.owningView != nil, @"layoutGuide's owningView must not be nil"); self = [super init]; if (!self) return nil; diff --git a/Masonry/MASViewAttribute.h b/Masonry/MASViewAttribute.h index dd8501eb..6912f8fd 100644 --- a/Masonry/MASViewAttribute.h +++ b/Masonry/MASViewAttribute.h @@ -34,12 +34,12 @@ NS_ASSUME_NONNULL_BEGIN /** * Convenience initializer. */ -- (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute; +- (instancetype)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute; /** * The designated initializer. */ -- (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; +- (instancetype)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; /** * Determine whether the layoutAttribute is a size attribute diff --git a/Masonry/MASViewAttribute.m b/Masonry/MASViewAttribute.m index e55163ef..4d331429 100644 --- a/Masonry/MASViewAttribute.m +++ b/Masonry/MASViewAttribute.m @@ -10,12 +10,12 @@ @implementation MASViewAttribute -- (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { +- (instancetype)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { self = [self initWithView:view item:view layoutAttribute:layoutAttribute]; return self; } -- (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { +- (instancetype)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { self = [super init]; if (!self) return nil; diff --git a/Masonry/MASViewConstraint.h b/Masonry/MASViewConstraint.h index 0b4178d7..663968dd 100644 --- a/Masonry/MASViewConstraint.h +++ b/Masonry/MASViewConstraint.h @@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return a new view constraint */ -- (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute; +- (instancetype)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute; /** * Returns all MASViewConstraints installed with this view as a first item. diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index 633469b7..9beefb61 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -74,7 +74,7 @@ @interface MASViewConstraint () @implementation MASViewConstraint -- (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute { +- (instancetype)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute { self = [super init]; if (!self) return nil; diff --git a/README.md b/README.md index d4286576..6f8998db 100644 --- a/README.md +++ b/README.md @@ -334,7 +334,7 @@ For an example of how to set this up take a look at the **Masonry iOS Examples** ```objc @implementation DIYCustomView -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; diff --git a/Tests/Specs/MASConstraintDelegateMock.m b/Tests/Specs/MASConstraintDelegateMock.m index fa01af3b..afb48c3b 100644 --- a/Tests/Specs/MASConstraintDelegateMock.m +++ b/Tests/Specs/MASConstraintDelegateMock.m @@ -10,7 +10,7 @@ @implementation MASConstraintDelegateMock -- (id)init { +- (instancetype)init { self = [super init]; if (!self) return nil; From 73c3723fba64999e2302141b444d14467fe9d1c8 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 14:33:44 +0800 Subject: [PATCH 27/32] Use Xcode 12.5 for travis --- .travis.yml | 7 +- Podfile.lock | 4 +- Pods/Expecta/Expecta/EXPDefines.h | 8 +- .../Expecta/Matchers/EXPMatchers+respondTo.m | 6 +- Pods/Expecta/README.md | 140 +++++++++--------- Pods/Manifest.lock | 4 +- Pods/Pods.xcodeproj/project.pbxproj | 52 +++---- .../Expecta/Expecta.debug.xcconfig | 17 +++ .../Expecta/Expecta.release.xcconfig | 17 +++ .../Expecta/Expecta.xcconfig | 12 -- .../Masonry/Masonry-prefix.pch | 5 + .../Masonry/Masonry.debug.xcconfig | 12 ++ .../Masonry/Masonry.release.xcconfig | 12 ++ .../Masonry/Masonry.xcconfig | 10 -- 14 files changed, 177 insertions(+), 129 deletions(-) create mode 100644 Pods/Target Support Files/Expecta/Expecta.debug.xcconfig create mode 100644 Pods/Target Support Files/Expecta/Expecta.release.xcconfig delete mode 100644 Pods/Target Support Files/Expecta/Expecta.xcconfig create mode 100644 Pods/Target Support Files/Masonry/Masonry.debug.xcconfig create mode 100644 Pods/Target Support Files/Masonry/Masonry.release.xcconfig delete mode 100644 Pods/Target Support Files/Masonry/Masonry.xcconfig diff --git a/.travis.yml b/.travis.yml index 7e5ff1d5..d26784e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,15 @@ --- language: objective-c -osx_image: xcode12 +osx_image: xcode12.5 before_install: - curl -L https://bootstrap.pypa.io/pip/2.7/get-pip.py | sudo python - sudo pip install cpp-coveralls - - gem install cocoapods xcpretty -N + - gem install xcpretty -N - export LANG=en_US.UTF-8 - - pod install script: - set -o pipefail - - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry iOS Tests' -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 8,OS=14.0' clean test ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcpretty -c + - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry iOS Tests' -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 8,OS=14.5' clean test ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcpretty -c - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry' -configuration Debug -sdk iphonesimulator clean build ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO | xcpretty -c - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry' -configuration Debug -sdk macosx clean build | xcpretty -c diff --git a/Podfile.lock b/Podfile.lock index 76debf81..5a12e933 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - Expecta (1.0.5) + - Expecta (1.0.6) - Masonry (1.2.0) DEPENDENCIES: @@ -15,7 +15,7 @@ EXTERNAL SOURCES: :path: "./" SPEC CHECKSUMS: - Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe + Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5 Masonry: 96a3fe904efc19f534b3c48982db9f616613c590 PODFILE CHECKSUM: edc6e98a73a37366909dc5103723a76307aebb04 diff --git a/Pods/Expecta/Expecta/EXPDefines.h b/Pods/Expecta/Expecta/EXPDefines.h index 52af7219..f37f697f 100644 --- a/Pods/Expecta/Expecta/EXPDefines.h +++ b/Pods/Expecta/Expecta/EXPDefines.h @@ -9,9 +9,9 @@ #ifndef Expecta_EXPDefines_h #define Expecta_EXPDefines_h -typedef void (^EXPBasicBlock)(); -typedef id (^EXPIdBlock)(); -typedef BOOL (^EXPBoolBlock)(); -typedef NSString *(^EXPStringBlock)(); +typedef void (^EXPBasicBlock)(void); +typedef id (^EXPIdBlock)(void); +typedef BOOL (^EXPBoolBlock)(void); +typedef NSString *(^EXPStringBlock)(void); #endif diff --git a/Pods/Expecta/Expecta/Matchers/EXPMatchers+respondTo.m b/Pods/Expecta/Expecta/Matchers/EXPMatchers+respondTo.m index d294113f..597aeec4 100644 --- a/Pods/Expecta/Expecta/Matchers/EXPMatchers+respondTo.m +++ b/Pods/Expecta/Expecta/Matchers/EXPMatchers+respondTo.m @@ -4,12 +4,16 @@ EXPMatcherImplementationBegin(respondTo, (SEL expected)) { BOOL actualIsNil = (actual == nil); BOOL expectedIsNull = (expected == NULL); - + prerequisite (^BOOL { return !(actualIsNil || expectedIsNull); }); match(^BOOL { + if ([actual respondsToSelector:@selector(instancesRespondToSelector:)] && + [actual instancesRespondToSelector:expected]) { + return YES; + } return [actual respondsToSelector:expected]; }); diff --git a/Pods/Expecta/README.md b/Pods/Expecta/README.md index 19337075..afebcf25 100644 --- a/Pods/Expecta/README.md +++ b/Pods/Expecta/README.md @@ -1,13 +1,8 @@ -#Expecta - -[![Build Status](http://img.shields.io/travis/specta/expecta/master.svg?style=flat)](https://travis-ci.org/specta/expecta) -[![Pod Version](http://img.shields.io/cocoapods/v/Expecta.svg?style=flat)](http://cocoadocs.org/docsets/Expecta/) -[![Pod Platform](http://img.shields.io/cocoapods/p/Expecta.svg?style=flat)](http://cocoadocs.org/docsets/Expecta/) -[![Pod License](http://img.shields.io/cocoapods/l/Expecta.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0.html) +# Expecta [![Build Status](http://img.shields.io/travis/specta/expecta/master.svg?style=flat)](https://travis-ci.org/specta/expecta) [![Pod Version](http://img.shields.io/cocoapods/v/Expecta.svg?style=flat)](http://cocoadocs.org/docsets/Expecta/) A matcher framework for Objective-C and Cocoa. -## Introduction +## FEATURES The main advantage of using Expecta over other matcher frameworks is that you do not have to specify the data types. Also, the syntax of Expecta matchers is much more readable and does not suffer from parenthesitis. @@ -18,63 +13,10 @@ expect([bar isBar]).to.equal(YES); expect(baz).to.equal(3.14159); ``` -Expecta is framework-agnostic: it works well with XCTest and XCTest-compatible test frameworks such as [Specta](http://github.com/petejkim/specta/). - - -## Installation - -You can setup Expecta using [Carthage](https://github.com/Carthage/Carthage), [CocoaPods](http://github.com/CocoaPods/CocoaPods) or [completely manually](#setting-up-manually). - -### Carthage - -1. Add Expecta to your project's `Cartfile.private`: - - ```ruby - github "specta/expecta" "master" - ``` - -2. Run `carthage update` in your project directory. -3. Drag the appropriate **Expecta.framework** for your platform (located in `Carthage/Build/`) into your application’s Xcode project, and add it to your test target(s). - -### CocoaPods - -1. Add Expecta to your project's `Podfile`: - - ```ruby - target :MyApp do - # Your app's dependencies - end - - target :MyAppTests do - pod 'Expecta', '~> 1.0.0' - end - ``` - -2. Run `pod update` or `pod install` in your project directory. - -### Setting Up Manually - -1. Clone Expecta from Github. -2. Run `rake` in your project directory to build the frameworks and libraries. -3. Add a Cocoa or Cocoa Touch Unit Testing Bundle target to your Xcode project if you don't already have one. -4. For **OS X projects**, copy and add `Expecta.framework` in the `Products/osx` folder to your project's test target. - - For **iOS projects**, copy and add `Expecta.framework` in the `Products/ios` folder to your project's test target. - - You can also use `libExpecta.a` if you prefer to link Expecta as a static library — iOS 7.x and below require this. +Expecta is framework-agnostic: it works well with XCTest and XCTest-compatible test frameworks such as [Specta](http://github.com/petejkim/specta/), or [Kiwi](https://github.com/kiwi-bdd/Kiwi/). -6. Add `-ObjC` and `-all_load` to the **Other Linker Flags** build setting for the test target in your Xcode project. -7. You can now use Expecta in your test classes by adding the following import: - - ```objective-c - @import Expecta; // If you're using Expecta.framework - - // OR - - #import // If you're using the static library, or the framework - ``` -## Built-in Matchers +## MATCHERS > `expect(x).to.equal(y);` compares objects or primitives x and y and passes if they are identical (==) or equivalent isEqual:). @@ -132,13 +74,13 @@ You can setup Expecta using [Carthage](https://github.com/Carthage/Carthage), [C > `expect(x).to.match(y);` passes if an instance of NSString `x` matches regular expression (given as NSString) `y` one or more times. -## Inverting Matchers +### Inverting Matchers Every matcher's criteria can be inverted by prepending `.notTo` or `.toNot`: >`expect(x).notTo.equal(y);` compares objects or primitives x and y and passes if they are *not* equivalent. -## Asynchronous Testing +### Asynchronous Testing Every matcher can be made to perform asynchronous testing by prepending `.will`, `.willNot` or `after(...)`: @@ -172,14 +114,14 @@ describe(@"Foo", ^{ }); ``` -## Forced Failing +### Forced Failing You can fail a test by using the `failure` attribute. This can be used to test branching. > `failure(@"This should not happen");` outright fails a test. -## Writing New Matchers +### WRITING NEW MATCHERS Writing a new matcher is easy with special macros provided by Expecta. Take a look at how `.beKindOf()` matcher is defined: @@ -246,7 +188,7 @@ EXPMatcherImplementationBegin(beKindOf, (Class expected)) { EXPMatcherImplementationEnd ``` -## Dynamic Predicate Matchers +## DYNAMIC PREDICATE MATCHERS It is possible to add predicate matchers by simply defining the matcher interface, with the matcher implementation being handled at runtime by delegating to the predicate method on your object. @@ -282,6 +224,68 @@ You can now write your assertion as follows: expect(lightSwitch).isTurnedOn(); ``` +## INSTALLATION + +You can setup Expecta using [CocoaPods](http://github.com/CocoaPods/CocoaPods), [Carthage](https://github.com/Carthage/Carthage) or [completely manually](#setting-up-manually). + +### CocoaPods + +1. Add Expecta to your project's `Podfile`: + +```ruby +target :MyApp do +# your app dependencies + + target :MyAppTests do + inherit! search_paths + + pod 'Expecta', '~> 1.0' + end +end +``` + +### Carthage + +1. Add Expecta to your project's `Cartfile.private`: + + ```ruby + github "specta/expecta" "master" + ``` + +2. Run `carthage update` in your project directory. +3. Drag the appropriate **Expecta.framework** for your platform (located in `Carthage/Build/`) into your application’s Xcode project, and add it to your test target(s). + + +2. Run `pod update` or `pod install` in your project directory. + +### Setting Up Manually + +1. Clone Expecta from Github. +2. Run `rake` in your project directory to build the frameworks and libraries. +3. Add a Cocoa or Cocoa Touch Unit Testing Bundle target to your Xcode project if you don't already have one. +4. For **OS X projects**, copy and add `Expecta.framework` in the `Products/osx` folder to your project's test target. + + For **iOS projects**, copy and add `Expecta.framework` in the `Products/ios` folder to your project's test target. + + You can also use `libExpecta.a` if you prefer to link Expecta as a static library — iOS 7.x and below require this. + +6. Add `-ObjC` and `-all_load` to the **Other Linker Flags** build setting for the test target in your Xcode project. +7. You can now use Expecta in your test classes by adding the following import: + + ```objective-c + @import Expecta; // If you're using Expecta.framework + + // OR + + #import // If you're using the static library, or the framework + ``` + +## STATUS + +Expecta, and Specta are considered done projects, there are no plans for _active_ development on the project at the moment aside from ensuring future Xcode compatability. +Therefore it is a stable dependency, but will not be moving into the Swift world. If you are looking for that, we recommend you consider [Quick](https://github.com/quick/quick) and [Nimble](https://github.com/quick/nimble). + + ## Contribution Guidelines * Please use only spaces and indent 2 spaces at a time. @@ -290,4 +294,4 @@ expect(lightSwitch).isTurnedOn(); ## License -Copyright (c) 2012-2015 [Specta Team](https://github.com/specta?tab=members). This software is licensed under the [MIT License](http://github.com/specta/specta/raw/master/LICENSE). +Copyright (c) 2012-2016 [Specta Team](https://github.com/specta?tab=members). This software is licensed under the [MIT License](http://github.com/specta/specta/raw/master/LICENSE). diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 76debf81..5a12e933 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - Expecta (1.0.5) + - Expecta (1.0.6) - Masonry (1.2.0) DEPENDENCIES: @@ -15,7 +15,7 @@ EXTERNAL SOURCES: :path: "./" SPEC CHECKSUMS: - Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe + Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5 Masonry: 96a3fe904efc19f534b3c48982db9f616613c590 PODFILE CHECKSUM: edc6e98a73a37366909dc5103723a76307aebb04 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 1e0bbf83..7ee0b8a1 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -943,7 +943,7 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0894506F2DDE0D8E428DD9E45D1A91CC /* Release */ = { + 10D29FFB224C78CE6D8ED2E78ADB0FA0 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 37C9A4075B3D6A87244FD6442E426342 /* Expecta.release.xcconfig */; buildSettings = { @@ -951,7 +951,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; @@ -1032,28 +1032,6 @@ }; name = Debug; }; - 3C9EEE9A3D005FE978445CACD1281EA4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F7CB9B0B3F8680F35B9EC71EABF62ED6 /* Expecta.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.1.1; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = Expecta; - PRODUCT_NAME = Expecta; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; 4B40799AB99B58ECD7EA365FF2CA12C2 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 4C6A4D44BC66DA17B7398BFA64ADC39A /* Pods-Masonry iOS Tests.release.xcconfig */; @@ -1288,6 +1266,28 @@ }; name = Debug; }; + FAAA109B6D07D02810436194C4E127FC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F7CB9B0B3F8680F35B9EC71EABF62ED6 /* Expecta.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/Expecta/Expecta-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = Expecta; + PRODUCT_NAME = Expecta; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1312,8 +1312,8 @@ 6DED44BA887C7B50F308C1DB11861EC2 /* Build configuration list for PBXNativeTarget "Expecta" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3C9EEE9A3D005FE978445CACD1281EA4 /* Debug */, - 0894506F2DDE0D8E428DD9E45D1A91CC /* Release */, + FAAA109B6D07D02810436194C4E127FC /* Debug */, + 10D29FFB224C78CE6D8ED2E78ADB0FA0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/Expecta/Expecta.debug.xcconfig b/Pods/Target Support Files/Expecta/Expecta.debug.xcconfig new file mode 100644 index 00000000..e9706e54 --- /dev/null +++ b/Pods/Target Support Files/Expecta/Expecta.debug.xcconfig @@ -0,0 +1,17 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Expecta +ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Expecta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Expecta +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Expecta/Expecta.release.xcconfig b/Pods/Target Support Files/Expecta/Expecta.release.xcconfig new file mode 100644 index 00000000..e9706e54 --- /dev/null +++ b/Pods/Target Support Files/Expecta/Expecta.release.xcconfig @@ -0,0 +1,17 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Expecta +ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Expecta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Expecta +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Expecta/Expecta.xcconfig b/Pods/Target Support Files/Expecta/Expecta.xcconfig deleted file mode 100644 index 4364ae8b..00000000 --- a/Pods/Target Support Files/Expecta/Expecta.xcconfig +++ /dev/null @@ -1,12 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Expecta -ENABLE_BITCODE = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Expecta" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Masonry" -OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/Expecta -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/Masonry/Masonry-prefix.pch b/Pods/Target Support Files/Masonry/Masonry-prefix.pch index beb2a244..e5e37e2a 100644 --- a/Pods/Target Support Files/Masonry/Masonry-prefix.pch +++ b/Pods/Target Support Files/Masonry/Masonry-prefix.pch @@ -1,5 +1,10 @@ #ifdef __OBJC__ +#import +#if TARGET_OS_IPHONE || TARGET_OS_TV #import +#elif TARGET_OS_MAC +#import +#endif #else #ifndef FOUNDATION_EXPORT #if defined(__cplusplus) diff --git a/Pods/Target Support Files/Masonry/Masonry.debug.xcconfig b/Pods/Target Support Files/Masonry/Masonry.debug.xcconfig new file mode 100644 index 00000000..39b6aa89 --- /dev/null +++ b/Pods/Target Support Files/Masonry/Masonry.debug.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Masonry +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Masonry/Masonry.release.xcconfig b/Pods/Target Support Files/Masonry/Masonry.release.xcconfig new file mode 100644 index 00000000..39b6aa89 --- /dev/null +++ b/Pods/Target Support Files/Masonry/Masonry.release.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Masonry +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Masonry/Masonry.xcconfig b/Pods/Target Support Files/Masonry/Masonry.xcconfig deleted file mode 100644 index 539a8347..00000000 --- a/Pods/Target Support Files/Masonry/Masonry.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Masonry -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Expecta" "${PODS_ROOT}/Headers/Public/Masonry" -OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/.. -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES From 4666e273fe02a165134b1e0f401f248ba639ee93 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 23:09:10 +0800 Subject: [PATCH 28/32] fix issue: build error with ObjC++ --- Masonry/MASConstraint.h | 5 +++++ Masonry/MASConstraintMaker.m | 4 ++-- Masonry/MASViewConstraint.m | 16 +++++++--------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Masonry/MASConstraint.h b/Masonry/MASConstraint.h index d1ebb0ef..7309feee 100644 --- a/Masonry/MASConstraint.h +++ b/Masonry/MASConstraint.h @@ -118,11 +118,16 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly) MASConstraint *with; +#ifndef __cplusplus + /** * Optional semantic property which has no effect but improves the readability of constraint + * `and` is defined in in C or as an operator was built into C++ */ @property (nonatomic, readonly) MASConstraint *and; +#endif + /** * Creates a new MASCompositeConstraint with the called attribute and reciever */ diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index 8187121b..6d30a937 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -29,7 +29,7 @@ - (instancetype)initWithView:(MAS_VIEW *)view { if (!self) return nil; self.view = view; - self.constraints = NSMutableArray.new; + self.constraints = [NSMutableArray array]; return self; } @@ -41,7 +41,7 @@ - (instancetype)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide { self.view = layoutGuide.owningView; self.item = layoutGuide; - self.constraints = NSMutableArray.new; + self.constraints = [NSMutableArray array]; return self; } diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index 9beefb61..f401501e 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -21,13 +21,12 @@ @interface MAS_VIEW (MASConstraints) @implementation MAS_VIEW (MASConstraints) -static char kInstalledConstraintsKey; - - (NSMutableSet *)mas_installedConstraints { - NSMutableSet *constraints = objc_getAssociatedObject(self, &kInstalledConstraintsKey); + const void *key = @selector(mas_installedConstraints); + NSMutableSet *constraints = objc_getAssociatedObject(self, key); if (!constraints) { constraints = [NSMutableSet set]; - objc_setAssociatedObject(self, &kInstalledConstraintsKey, constraints, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + objc_setAssociatedObject(self, key, constraints, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } return constraints; } @@ -43,13 +42,12 @@ @interface MASLayoutGuide (MASConstraints) @implementation MASLayoutGuide (MASConstraints) -static char kInstalledConstraintsKey; - - (NSMutableSet *)mas_installedConstraints { - NSMutableSet *constraints = objc_getAssociatedObject(self, &kInstalledConstraintsKey); + const void *key = @selector(mas_installedConstraints); + NSMutableSet *constraints = objc_getAssociatedObject(self, key); if (!constraints) { constraints = [NSMutableSet set]; - objc_setAssociatedObject(self, &kInstalledConstraintsKey, constraints, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + objc_setAssociatedObject(self, key, constraints, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } return constraints; } @@ -214,7 +212,7 @@ - (void)setSecondViewAttribute:(id)secondViewAttribute { return ^id(id attribute, NSLayoutRelation relation) { if ([attribute isKindOfClass:NSArray.class]) { NSAssert(!self.hasLayoutRelation, @"Redefinition of constraint relation"); - NSMutableArray *children = NSMutableArray.new; + NSMutableArray *children = [NSMutableArray array]; for (id attr in attribute) { MASViewConstraint *viewConstraint = [self copy]; viewConstraint.layoutRelation = relation; From 1866250dc5e84c1e144f71eaea218cf3e151c666 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Fri, 4 Jun 2021 23:23:28 +0800 Subject: [PATCH 29/32] fix issue: build error with --- Masonry/MASConstraint.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Masonry/MASConstraint.h b/Masonry/MASConstraint.h index 7309feee..9cc10f36 100644 --- a/Masonry/MASConstraint.h +++ b/Masonry/MASConstraint.h @@ -119,13 +119,13 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly) MASConstraint *with; #ifndef __cplusplus - +#ifndef and /** * Optional semantic property which has no effect but improves the readability of constraint * `and` is defined in in C or as an operator was built into C++ */ @property (nonatomic, readonly) MASConstraint *and; - +#endif #endif /** From 7fe0eda7dacfc812534d9b13359c3864626a173c Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Sat, 5 Jun 2021 07:48:34 +0800 Subject: [PATCH 30/32] add NS_DESIGNATED_INITIALIZER --- Masonry/MASCompositeConstraint.h | 5 ++++- Masonry/MASCompositeConstraint.m | 11 +++++------ Masonry/MASConstraintMaker.h | 7 +++++-- Masonry/MASConstraintMaker.m | 20 +++++++++----------- Masonry/MASViewAttribute.h | 5 ++++- Masonry/MASViewAttribute.m | 16 +++++++--------- Masonry/MASViewConstraint.h | 5 ++++- Masonry/MASViewConstraint.m | 13 ++++++------- 8 files changed, 44 insertions(+), 38 deletions(-) diff --git a/Masonry/MASCompositeConstraint.h b/Masonry/MASCompositeConstraint.h index e2093504..04a045b3 100644 --- a/Masonry/MASCompositeConstraint.h +++ b/Masonry/MASCompositeConstraint.h @@ -23,7 +23,10 @@ NS_ASSUME_NONNULL_BEGIN * * @return a composite constraint */ -- (instancetype)initWithChildren:(NSArray *)children; +- (instancetype)initWithChildren:(NSArray *)children NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; @end diff --git a/Masonry/MASCompositeConstraint.m b/Masonry/MASCompositeConstraint.m index 30aa01c8..b4ddbf16 100644 --- a/Masonry/MASCompositeConstraint.m +++ b/Masonry/MASCompositeConstraint.m @@ -19,12 +19,11 @@ @interface MASCompositeConstraint () @implementation MASCompositeConstraint - (instancetype)initWithChildren:(NSArray *)children { - self = [super init]; - if (!self) return nil; - - _childConstraints = [children mutableCopy]; - for (MASConstraint *constraint in _childConstraints) { - constraint.delegate = self; + if (self = [super init]) { + _childConstraints = [children mutableCopy]; + for (MASConstraint *constraint in _childConstraints) { + constraint.delegate = self; + } } return self; diff --git a/Masonry/MASConstraintMaker.h b/Masonry/MASConstraintMaker.h index dfafbe23..a58a86e1 100644 --- a/Masonry/MASConstraintMaker.h +++ b/Masonry/MASConstraintMaker.h @@ -163,9 +163,12 @@ NS_ASSUME_NONNULL_BEGIN * * @return a new MASConstraintMaker */ -- (instancetype)initWithView:(MAS_VIEW *)view; +- (instancetype)initWithView:(MAS_VIEW *)view NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide API_AVAILABLE(macos(10.11), ios(9.0)); +- (instancetype)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide NS_DESIGNATED_INITIALIZER API_AVAILABLE(macos(10.11), ios(9.0)); + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; /** * Calls install method on any MASConstraints which have been created by this maker diff --git a/Masonry/MASConstraintMaker.m b/Masonry/MASConstraintMaker.m index 6d30a937..eba5f49f 100644 --- a/Masonry/MASConstraintMaker.m +++ b/Masonry/MASConstraintMaker.m @@ -25,23 +25,21 @@ @interface MASConstraintMaker () @implementation MASConstraintMaker - (instancetype)initWithView:(MAS_VIEW *)view { - self = [super init]; - if (!self) return nil; - - self.view = view; - self.constraints = [NSMutableArray array]; + if (self = [super init]) { + self.view = view; + self.constraints = [NSMutableArray array]; + } return self; } - (instancetype)initWithLayoutGuide:(MASLayoutGuide *)layoutGuide { NSAssert(layoutGuide.owningView != nil, @"layoutGuide's owningView must not be nil"); - self = [super init]; - if (!self) return nil; - - self.view = layoutGuide.owningView; - self.item = layoutGuide; - self.constraints = [NSMutableArray array]; + if (self = [super init]) { + self.view = layoutGuide.owningView; + self.item = layoutGuide; + self.constraints = [NSMutableArray array]; + } return self; } diff --git a/Masonry/MASViewAttribute.h b/Masonry/MASViewAttribute.h index 6912f8fd..298dd7bc 100644 --- a/Masonry/MASViewAttribute.h +++ b/Masonry/MASViewAttribute.h @@ -39,7 +39,10 @@ NS_ASSUME_NONNULL_BEGIN /** * The designated initializer. */ -- (instancetype)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; +- (instancetype)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; /** * Determine whether the layoutAttribute is a size attribute diff --git a/Masonry/MASViewAttribute.m b/Masonry/MASViewAttribute.m index 4d331429..8b09ec62 100644 --- a/Masonry/MASViewAttribute.m +++ b/Masonry/MASViewAttribute.m @@ -11,18 +11,16 @@ @implementation MASViewAttribute - (instancetype)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { - self = [self initWithView:view item:view layoutAttribute:layoutAttribute]; - return self; + return [self initWithView:view item:view layoutAttribute:layoutAttribute]; } - (instancetype)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { - self = [super init]; - if (!self) return nil; - - _view = view; - _item = item?:view; - _layoutAttribute = layoutAttribute; - + if (self = [super init]) { + _view = view; + _item = item?:view; + _layoutAttribute = layoutAttribute; + } + return self; } diff --git a/Masonry/MASViewConstraint.h b/Masonry/MASViewConstraint.h index 663968dd..d52f0450 100644 --- a/Masonry/MASViewConstraint.h +++ b/Masonry/MASViewConstraint.h @@ -36,7 +36,10 @@ NS_ASSUME_NONNULL_BEGIN * * @return a new view constraint */ -- (instancetype)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute; +- (instancetype)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; /** * Returns all MASViewConstraints installed with this view as a first item. diff --git a/Masonry/MASViewConstraint.m b/Masonry/MASViewConstraint.m index f401501e..7badcd0e 100644 --- a/Masonry/MASViewConstraint.m +++ b/Masonry/MASViewConstraint.m @@ -73,13 +73,12 @@ @interface MASViewConstraint () @implementation MASViewConstraint - (instancetype)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute { - self = [super init]; - if (!self) return nil; - - _firstViewAttribute = firstViewAttribute; - self.layoutPriority = MASLayoutPriorityRequired; - self.layoutMultiplier = 1; - + if (self = [super init]) { + _firstViewAttribute = firstViewAttribute; + self.layoutPriority = MASLayoutPriorityRequired; + self.layoutMultiplier = 1; + } + return self; } From fa1a87fb04c6963ecb6a3827666fddbb723b8356 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Sat, 5 Jun 2021 11:19:50 +0800 Subject: [PATCH 31/32] enable GitHub Actions --- .github/workflows/main.yml | 22 +++++++++++++++++++ .travis.yml | 2 +- Masonry.podspec | 2 +- .../xcschemes/Masonry iOS Tests.xcscheme | 1 + 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..50619027 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,22 @@ + +on: + push: + branches: + - master + pull_request: + branches: + - master +jobs: + build: + runs-on: macOS-latest + steps: + - name: Test + uses: actions/checkout@v2 + - name: Build for iOS + run: xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry' -configuration Debug -sdk iphonesimulator clean build ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO + - name: Build for macOS + run: xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry' -configuration Debug -sdk macosx clean build + - name: Build and Test + run: xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry iOS Tests' -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 8' clean test ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1.2.1 diff --git a/.travis.yml b/.travis.yml index d26784e5..fc099026 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_install: script: - set -o pipefail - - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry iOS Tests' -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 8,OS=14.5' clean test ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcpretty -c + - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry iOS Tests' -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 8' clean test ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcpretty -c - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry' -configuration Debug -sdk iphonesimulator clean build ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO | xcpretty -c - xcodebuild -workspace 'Masonry.xcworkspace' -scheme 'Masonry' -configuration Debug -sdk macosx clean build | xcpretty -c diff --git a/Masonry.podspec b/Masonry.podspec index 27c83db5..97938f20 100644 --- a/Masonry.podspec +++ b/Masonry.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Masonry' - s.version = '1.2.0' + s.version = '1.2.1' s.license = 'MIT' s.summary = 'Harness the power of Auto Layout NSLayoutConstraints with a simplified, chainable and expressive syntax.' s.homepage = 'https://github.com/SnapKit/Masonry' diff --git a/Tests/Masonry Tests.xcodeproj/xcshareddata/xcschemes/Masonry iOS Tests.xcscheme b/Tests/Masonry Tests.xcodeproj/xcshareddata/xcschemes/Masonry iOS Tests.xcscheme index 0a41449c..3892e3a5 100644 --- a/Tests/Masonry Tests.xcodeproj/xcshareddata/xcschemes/Masonry iOS Tests.xcscheme +++ b/Tests/Masonry Tests.xcodeproj/xcshareddata/xcschemes/Masonry iOS Tests.xcscheme @@ -28,6 +28,7 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" language = "" shouldUseLaunchSchemeArgsEnv = "YES"> + codeCoverageEnabled = "YES"> From 79bb3dc6fadccf8e4355d7e7b3126d02dd1ddc65 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Sun, 6 Jun 2021 18:09:11 +0800 Subject: [PATCH 32/32] update init method of examples --- .../MASExampleAnimatedView.m | 111 +++++++------- .../MASExampleArrayView.m | 61 ++++---- .../MASExampleAttributeChainingView.m | 89 ++++++----- .../MASExampleBasicView.m | 105 +++++++------ .../MASExampleConstantsView.m | 61 ++++---- .../MASExampleDebuggingView.m | 145 +++++++++--------- .../MASExampleDistributeView.m | 93 ++++++----- .../MASExampleLabelView.m | 54 ++++--- .../MASExampleLayoutGuideViewController.m | 7 +- .../MASExampleListViewController.m | 90 ++++++----- .../MASExampleMarginView.m | 39 +++-- .../MASExampleRemakeView.m | 25 ++- .../MASExampleScrollView.m | 23 ++- .../MASExampleSidesView.m | 33 ++-- .../MASExampleUpdateView.m | 35 ++--- .../MASExampleViewController.m | 9 +- README.md | 9 +- Tests/Specs/MASConstraintDelegateMock.m | 9 +- 18 files changed, 489 insertions(+), 509 deletions(-) diff --git a/Examples/Masonry iOS Examples/MASExampleAnimatedView.m b/Examples/Masonry iOS Examples/MASExampleAnimatedView.m index 3e3f2e02..02f505ef 100644 --- a/Examples/Masonry iOS Examples/MASExampleAnimatedView.m +++ b/Examples/Masonry iOS Examples/MASExampleAnimatedView.m @@ -19,62 +19,61 @@ @interface MASExampleAnimatedView () @implementation MASExampleAnimatedView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - UIView *greenView = UIView.new; - greenView.backgroundColor = UIColor.greenColor; - greenView.layer.borderColor = UIColor.blackColor.CGColor; - greenView.layer.borderWidth = 2; - [self addSubview:greenView]; - - UIView *redView = UIView.new; - redView.backgroundColor = UIColor.redColor; - redView.layer.borderColor = UIColor.blackColor.CGColor; - redView.layer.borderWidth = 2; - [self addSubview:redView]; - - UIView *blueView = UIView.new; - blueView.backgroundColor = UIColor.blueColor; - blueView.layer.borderColor = UIColor.blackColor.CGColor; - blueView.layer.borderWidth = 2; - [self addSubview:blueView]; - - UIView *superview = self; - int padding = self.padding = 10; - UIEdgeInsets paddingInsets = UIEdgeInsetsMake(self.padding, self.padding, self.padding, self.padding); - - self.animatableConstraints = NSMutableArray.new; - - [greenView mas_makeConstraints:^(MASConstraintMaker *make) { - [self.animatableConstraints addObjectsFromArray:@[ - make.edges.equalTo(superview).insets(paddingInsets).priorityLow(), - make.bottom.equalTo(blueView.mas_top).offset(-padding), - ]]; - - make.size.equalTo(redView); - make.height.equalTo(blueView.mas_height); - }]; - - [redView mas_makeConstraints:^(MASConstraintMaker *make) { - [self.animatableConstraints addObjectsFromArray:@[ - make.edges.equalTo(superview).insets(paddingInsets).priorityLow(), - make.left.equalTo(greenView.mas_right).offset(padding), - make.bottom.equalTo(blueView.mas_top).offset(-padding), - ]]; - - make.size.equalTo(greenView); - make.height.equalTo(blueView.mas_height); - }]; - - [blueView mas_makeConstraints:^(MASConstraintMaker *make) { - [self.animatableConstraints addObjectsFromArray:@[ - make.edges.equalTo(superview).insets(paddingInsets).priorityLow(), - ]]; - - make.height.equalTo(greenView.mas_height); - make.height.equalTo(redView.mas_height); - }]; + if (self = [super init]) { + UIView *greenView = UIView.new; + greenView.backgroundColor = UIColor.greenColor; + greenView.layer.borderColor = UIColor.blackColor.CGColor; + greenView.layer.borderWidth = 2; + [self addSubview:greenView]; + + UIView *redView = UIView.new; + redView.backgroundColor = UIColor.redColor; + redView.layer.borderColor = UIColor.blackColor.CGColor; + redView.layer.borderWidth = 2; + [self addSubview:redView]; + + UIView *blueView = UIView.new; + blueView.backgroundColor = UIColor.blueColor; + blueView.layer.borderColor = UIColor.blackColor.CGColor; + blueView.layer.borderWidth = 2; + [self addSubview:blueView]; + + UIView *superview = self; + int padding = self.padding = 10; + UIEdgeInsets paddingInsets = UIEdgeInsetsMake(self.padding, self.padding, self.padding, self.padding); + + self.animatableConstraints = NSMutableArray.new; + + [greenView mas_makeConstraints:^(MASConstraintMaker *make) { + [self.animatableConstraints addObjectsFromArray:@[ + make.edges.equalTo(superview).insets(paddingInsets).priorityLow(), + make.bottom.equalTo(blueView.mas_top).offset(-padding), + ]]; + + make.size.equalTo(redView); + make.height.equalTo(blueView.mas_height); + }]; + + [redView mas_makeConstraints:^(MASConstraintMaker *make) { + [self.animatableConstraints addObjectsFromArray:@[ + make.edges.equalTo(superview).insets(paddingInsets).priorityLow(), + make.left.equalTo(greenView.mas_right).offset(padding), + make.bottom.equalTo(blueView.mas_top).offset(-padding), + ]]; + + make.size.equalTo(greenView); + make.height.equalTo(blueView.mas_height); + }]; + + [blueView mas_makeConstraints:^(MASConstraintMaker *make) { + [self.animatableConstraints addObjectsFromArray:@[ + make.edges.equalTo(superview).insets(paddingInsets).priorityLow(), + ]]; + + make.height.equalTo(greenView.mas_height); + make.height.equalTo(redView.mas_height); + }]; + } return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleArrayView.m b/Examples/Masonry iOS Examples/MASExampleArrayView.m index 74c3424a..b7d10457 100644 --- a/Examples/Masonry iOS Examples/MASExampleArrayView.m +++ b/Examples/Masonry iOS Examples/MASExampleArrayView.m @@ -20,37 +20,36 @@ @interface MASExampleArrayView () @implementation MASExampleArrayView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - UIButton *raiseButton = [UIButton buttonWithType:UIButtonTypeSystem]; - [raiseButton setTitle:@"Raise" forState:UIControlStateNormal]; - [raiseButton addTarget:self action:@selector(raiseAction) forControlEvents:UIControlEventTouchUpInside]; - [self addSubview:raiseButton]; - - UIButton *centerButton = [UIButton buttonWithType:UIButtonTypeSystem]; - [centerButton setTitle:@"Center" forState:UIControlStateNormal]; - [centerButton addTarget:self action:@selector(centerAction) forControlEvents:UIControlEventTouchUpInside]; - [self addSubview:centerButton]; - - UIButton *lowerButton = [UIButton buttonWithType:UIButtonTypeSystem]; - [lowerButton setTitle:@"Lower" forState:UIControlStateNormal]; - [lowerButton addTarget:self action:@selector(lowerAction) forControlEvents:UIControlEventTouchUpInside]; - [self addSubview:lowerButton]; - - [lowerButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.equalTo(self).with.offset(10.0); - }]; - - [centerButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerX.equalTo(self); - }]; - - [raiseButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.right.equalTo(self).with.offset(-10); - }]; - - self.buttonViews = @[ raiseButton, lowerButton, centerButton ]; + if (self = [super init]) { + UIButton *raiseButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [raiseButton setTitle:@"Raise" forState:UIControlStateNormal]; + [raiseButton addTarget:self action:@selector(raiseAction) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:raiseButton]; + + UIButton *centerButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [centerButton setTitle:@"Center" forState:UIControlStateNormal]; + [centerButton addTarget:self action:@selector(centerAction) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:centerButton]; + + UIButton *lowerButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [lowerButton setTitle:@"Lower" forState:UIControlStateNormal]; + [lowerButton addTarget:self action:@selector(lowerAction) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:lowerButton]; + + [lowerButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self).with.offset(10.0); + }]; + + [centerButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(self); + }]; + + [raiseButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self).with.offset(-10); + }]; + + self.buttonViews = @[ raiseButton, lowerButton, centerButton ]; + } return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleAttributeChainingView.m b/Examples/Masonry iOS Examples/MASExampleAttributeChainingView.m index dd97b9c0..bd3e455b 100644 --- a/Examples/Masonry iOS Examples/MASExampleAttributeChainingView.m +++ b/Examples/Masonry iOS Examples/MASExampleAttributeChainingView.m @@ -11,65 +11,64 @@ @implementation MASExampleAttributeChainingView - (instancetype)init { - self = [super init]; - if (!self) return nil; + if (self = [super init]) { + UIView *greenView = UIView.new; + greenView.backgroundColor = UIColor.greenColor; + greenView.layer.borderColor = UIColor.blackColor.CGColor; + greenView.layer.borderWidth = 2; + [self addSubview:greenView]; - UIView *greenView = UIView.new; - greenView.backgroundColor = UIColor.greenColor; - greenView.layer.borderColor = UIColor.blackColor.CGColor; - greenView.layer.borderWidth = 2; - [self addSubview:greenView]; + UIView *redView = UIView.new; + redView.backgroundColor = UIColor.redColor; + redView.layer.borderColor = UIColor.blackColor.CGColor; + redView.layer.borderWidth = 2; + [self addSubview:redView]; - UIView *redView = UIView.new; - redView.backgroundColor = UIColor.redColor; - redView.layer.borderColor = UIColor.blackColor.CGColor; - redView.layer.borderWidth = 2; - [self addSubview:redView]; + UIView *blueView = UIView.new; + blueView.backgroundColor = UIColor.blueColor; + blueView.layer.borderColor = UIColor.blackColor.CGColor; + blueView.layer.borderWidth = 2; + [self addSubview:blueView]; - UIView *blueView = UIView.new; - blueView.backgroundColor = UIColor.blueColor; - blueView.layer.borderColor = UIColor.blackColor.CGColor; - blueView.layer.borderWidth = 2; - [self addSubview:blueView]; + UIView *superview = self; + UIEdgeInsets padding = UIEdgeInsetsMake(15, 10, 15, 10); - UIView *superview = self; - UIEdgeInsets padding = UIEdgeInsetsMake(15, 10, 15, 10); + [greenView mas_makeConstraints:^(MASConstraintMaker *make) { + // chain attributes + make.top.and.left.equalTo(superview).insets(padding); - [greenView mas_makeConstraints:^(MASConstraintMaker *make) { - // chain attributes - make.top.and.left.equalTo(superview).insets(padding); + // which is the equivalent of + // make.top.greaterThanOrEqualTo(superview).insets(padding); + // make.left.greaterThanOrEqualTo(superview).insets(padding); - // which is the equivalent of -// make.top.greaterThanOrEqualTo(superview).insets(padding); -// make.left.greaterThanOrEqualTo(superview).insets(padding); + make.bottom.equalTo(blueView.mas_top).insets(padding); + make.right.equalTo(redView.mas_left).insets(padding); + make.width.equalTo(redView.mas_width); - make.bottom.equalTo(blueView.mas_top).insets(padding); - make.right.equalTo(redView.mas_left).insets(padding); - make.width.equalTo(redView.mas_width); + make.height.equalTo(@[redView, blueView]); + }]; - make.height.equalTo(@[redView, blueView]); - }]; + [redView mas_makeConstraints:^(MASConstraintMaker *make) { + // chain attributes + make.top.and.right.equalTo(superview).insets(padding); - [redView mas_makeConstraints:^(MASConstraintMaker *make) { - // chain attributes - make.top.and.right.equalTo(superview).insets(padding); + make.left.equalTo(greenView.mas_right).insets(padding); + make.bottom.equalTo(blueView.mas_top).insets(padding); + make.width.equalTo(greenView.mas_width); - make.left.equalTo(greenView.mas_right).insets(padding); - make.bottom.equalTo(blueView.mas_top).insets(padding); - make.width.equalTo(greenView.mas_width); + make.height.equalTo(@[greenView, blueView]); + }]; - make.height.equalTo(@[greenView, blueView]); - }]; + [blueView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(greenView.mas_bottom).insets(padding); - [blueView mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(greenView.mas_bottom).insets(padding); + // chain attributes + make.left.right.and.bottom.equalTo(superview).insets(padding); - // chain attributes - make.left.right.and.bottom.equalTo(superview).insets(padding); - - make.height.equalTo(@[greenView, redView]); - }]; + make.height.equalTo(@[greenView, redView]); + }]; + } return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleBasicView.m b/Examples/Masonry iOS Examples/MASExampleBasicView.m index 9924372e..4f65d733 100644 --- a/Examples/Masonry iOS Examples/MASExampleBasicView.m +++ b/Examples/Masonry iOS Examples/MASExampleBasicView.m @@ -11,62 +11,61 @@ @implementation MASExampleBasicView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - UIView *greenView = UIView.new; - greenView.backgroundColor = UIColor.greenColor; - greenView.layer.borderColor = UIColor.blackColor.CGColor; - greenView.layer.borderWidth = 2; - [self addSubview:greenView]; - - UIView *redView = UIView.new; - redView.backgroundColor = UIColor.redColor; - redView.layer.borderColor = UIColor.blackColor.CGColor; - redView.layer.borderWidth = 2; - [self addSubview:redView]; - - UIView *blueView = UIView.new; - blueView.backgroundColor = UIColor.blueColor; - blueView.layer.borderColor = UIColor.blackColor.CGColor; - blueView.layer.borderWidth = 2; - [self addSubview:blueView]; - - UIView *superview = self; - int padding = 10; + if (self = [super init]) { + UIView *greenView = UIView.new; + greenView.backgroundColor = UIColor.greenColor; + greenView.layer.borderColor = UIColor.blackColor.CGColor; + greenView.layer.borderWidth = 2; + [self addSubview:greenView]; - //if you want to use Masonry without the mas_ prefix - //define MAS_SHORTHAND before importing Masonry.h see Masonry iOS Examples-Prefix.pch - [greenView makeConstraints:^(MASConstraintMaker *make) { - make.top.greaterThanOrEqualTo(superview.top).offset(padding); - make.left.equalTo(superview.left).offset(padding); - make.bottom.equalTo(blueView.top).offset(-padding); - make.right.equalTo(redView.left).offset(-padding); - make.width.equalTo(redView.width); + UIView *redView = UIView.new; + redView.backgroundColor = UIColor.redColor; + redView.layer.borderColor = UIColor.blackColor.CGColor; + redView.layer.borderWidth = 2; + [self addSubview:redView]; - make.height.equalTo(redView.height); - make.height.equalTo(blueView.height); - - }]; + UIView *blueView = UIView.new; + blueView.backgroundColor = UIColor.blueColor; + blueView.layer.borderColor = UIColor.blackColor.CGColor; + blueView.layer.borderWidth = 2; + [self addSubview:blueView]; - //with is semantic and option - [redView mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(superview.mas_top).with.offset(padding); //with with - make.left.equalTo(greenView.mas_right).offset(padding); //without with - make.bottom.equalTo(blueView.mas_top).offset(-padding); - make.right.equalTo(superview.mas_right).offset(-padding); - make.width.equalTo(greenView.mas_width); - - make.height.equalTo(@[greenView, blueView]); //can pass array of views - }]; - - [blueView mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(greenView.mas_bottom).offset(padding); - make.left.equalTo(superview.mas_left).offset(padding); - make.bottom.equalTo(superview.mas_bottom).offset(-padding); - make.right.equalTo(superview.mas_right).offset(-padding); - make.height.equalTo(@[greenView.mas_height, redView.mas_height]); //can pass array of attributes - }]; + UIView *superview = self; + int padding = 10; + + //if you want to use Masonry without the mas_ prefix + //define MAS_SHORTHAND before importing Masonry.h see Masonry iOS Examples-Prefix.pch + [greenView makeConstraints:^(MASConstraintMaker *make) { + make.top.greaterThanOrEqualTo(superview.top).offset(padding); + make.left.equalTo(superview.left).offset(padding); + make.bottom.equalTo(blueView.top).offset(-padding); + make.right.equalTo(redView.left).offset(-padding); + make.width.equalTo(redView.width); + + make.height.equalTo(redView.height); + make.height.equalTo(blueView.height); + + }]; + + //with is semantic and option + [redView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(superview.mas_top).with.offset(padding); //with with + make.left.equalTo(greenView.mas_right).offset(padding); //without with + make.bottom.equalTo(blueView.mas_top).offset(-padding); + make.right.equalTo(superview.mas_right).offset(-padding); + make.width.equalTo(greenView.mas_width); + + make.height.equalTo(@[greenView, blueView]); //can pass array of views + }]; + + [blueView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(greenView.mas_bottom).offset(padding); + make.left.equalTo(superview.mas_left).offset(padding); + make.bottom.equalTo(superview.mas_bottom).offset(-padding); + make.right.equalTo(superview.mas_right).offset(-padding); + make.height.equalTo(@[greenView.mas_height, redView.mas_height]); //can pass array of attributes + }]; + } return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleConstantsView.m b/Examples/Masonry iOS Examples/MASExampleConstantsView.m index 586a5994..e75776db 100644 --- a/Examples/Masonry iOS Examples/MASExampleConstantsView.m +++ b/Examples/Masonry iOS Examples/MASExampleConstantsView.m @@ -11,37 +11,36 @@ @implementation MASExampleConstantsView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - UIView *purpleView = UIView.new; - purpleView.backgroundColor = UIColor.purpleColor; - purpleView.layer.borderColor = UIColor.blackColor.CGColor; - purpleView.layer.borderWidth = 2; - [self addSubview:purpleView]; - - UIView *orangeView = UIView.new; - orangeView.backgroundColor = UIColor.orangeColor; - orangeView.layer.borderColor = UIColor.blackColor.CGColor; - orangeView.layer.borderWidth = 2; - [self addSubview:orangeView]; - - //example of using constants - - [purpleView mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(@20); - make.left.equalTo(@20); - make.bottom.equalTo(@-20); - make.right.equalTo(@-20); - }]; - - // auto-boxing macros allow you to simply use scalars and structs, they will be wrapped automatically - - [orangeView mas_makeConstraints:^(MASConstraintMaker *make) { - make.center.equalTo(CGPointMake(0, 50)); - make.size.equalTo(CGSizeMake(200, 100)); - }]; - + if (self = [super init]) { + UIView *purpleView = UIView.new; + purpleView.backgroundColor = UIColor.purpleColor; + purpleView.layer.borderColor = UIColor.blackColor.CGColor; + purpleView.layer.borderWidth = 2; + [self addSubview:purpleView]; + + UIView *orangeView = UIView.new; + orangeView.backgroundColor = UIColor.orangeColor; + orangeView.layer.borderColor = UIColor.blackColor.CGColor; + orangeView.layer.borderWidth = 2; + [self addSubview:orangeView]; + + //example of using constants + + [purpleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(@20); + make.left.equalTo(@20); + make.bottom.equalTo(@-20); + make.right.equalTo(@-20); + }]; + + // auto-boxing macros allow you to simply use scalars and structs, they will be wrapped automatically + + [orangeView mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(CGPointMake(0, 50)); + make.size.equalTo(CGSizeMake(200, 100)); + }]; + } + return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleDebuggingView.m b/Examples/Masonry iOS Examples/MASExampleDebuggingView.m index 2bda96b2..b9afd840 100644 --- a/Examples/Masonry iOS Examples/MASExampleDebuggingView.m +++ b/Examples/Masonry iOS Examples/MASExampleDebuggingView.m @@ -11,79 +11,78 @@ @implementation MASExampleDebuggingView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - UIView *greenView = UIView.new; - greenView.backgroundColor = UIColor.greenColor; - greenView.layer.borderColor = UIColor.blackColor.CGColor; - greenView.layer.borderWidth = 2; - [self addSubview:greenView]; - - UIView *redView = UIView.new; - redView.backgroundColor = UIColor.redColor; - redView.layer.borderColor = UIColor.blackColor.CGColor; - redView.layer.borderWidth = 2; - [self addSubview:redView]; - - UILabel *blueView = UILabel.new; - blueView.backgroundColor = UIColor.blueColor; - blueView.numberOfLines = 3; - blueView.textAlignment = NSTextAlignmentCenter; - blueView.font = [UIFont systemFontOfSize:24]; - blueView.textColor = UIColor.whiteColor; - blueView.text = @"this should look broken! check your console!"; - blueView.layer.borderColor = UIColor.blackColor.CGColor; - blueView.layer.borderWidth = 2; - [self addSubview:blueView]; - - UIView *superview = self; - int padding = 10; - - //you can attach debug keys to views like so: -// greenView.mas_key = @"greenView"; -// redView.mas_key = @"redView"; -// blueView.mas_key = @"blueView"; -// superview.mas_key = @"superview"; - - //OR you can attach keys automagically like so: - MASAttachKeys(greenView, redView, blueView, superview); - - [blueView mas_makeConstraints:^(MASConstraintMaker *make) { - //you can also attach debug keys to constaints - make.edges.equalTo(@1).key(@"ConflictingConstraint"); //composite constraint keys will be indexed - make.height.greaterThanOrEqualTo(@5000).key(@"ConstantConstraint"); - - make.top.equalTo(greenView.mas_bottom).offset(padding); - make.left.equalTo(superview.mas_left).offset(padding); - make.bottom.equalTo(superview.mas_bottom).offset(-padding).key(@"BottomConstraint"); - make.right.equalTo(superview.mas_right).offset(-padding); - make.height.equalTo(greenView.mas_height); - make.height.equalTo(redView.mas_height).key(@340954); //anything can be a key - }]; - - [greenView makeConstraints:^(MASConstraintMaker *make) { - make.top.greaterThanOrEqualTo(superview.top).offset(padding); - make.left.equalTo(superview.left).offset(padding); - make.bottom.equalTo(blueView.top).offset(-padding); - make.right.equalTo(redView.left).offset(-padding); - make.width.equalTo(redView.width); - - make.height.equalTo(redView.height); - make.height.equalTo(blueView.height); - }]; - - //with is semantic and option - [redView mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(superview.mas_top).with.offset(padding); - make.left.equalTo(greenView.mas_right).offset(padding); - make.bottom.equalTo(blueView.mas_top).offset(-padding); - make.right.equalTo(superview.mas_right).offset(-padding); - make.width.equalTo(greenView.mas_width); - - make.height.equalTo(@[greenView, blueView]); - }]; - + if (self = [super init]) { + UIView *greenView = UIView.new; + greenView.backgroundColor = UIColor.greenColor; + greenView.layer.borderColor = UIColor.blackColor.CGColor; + greenView.layer.borderWidth = 2; + [self addSubview:greenView]; + + UIView *redView = UIView.new; + redView.backgroundColor = UIColor.redColor; + redView.layer.borderColor = UIColor.blackColor.CGColor; + redView.layer.borderWidth = 2; + [self addSubview:redView]; + + UILabel *blueView = UILabel.new; + blueView.backgroundColor = UIColor.blueColor; + blueView.numberOfLines = 3; + blueView.textAlignment = NSTextAlignmentCenter; + blueView.font = [UIFont systemFontOfSize:24]; + blueView.textColor = UIColor.whiteColor; + blueView.text = @"this should look broken! check your console!"; + blueView.layer.borderColor = UIColor.blackColor.CGColor; + blueView.layer.borderWidth = 2; + [self addSubview:blueView]; + + UIView *superview = self; + int padding = 10; + + //you can attach debug keys to views like so: + // greenView.mas_key = @"greenView"; + // redView.mas_key = @"redView"; + // blueView.mas_key = @"blueView"; + // superview.mas_key = @"superview"; + + //OR you can attach keys automagically like so: + MASAttachKeys(greenView, redView, blueView, superview); + + [blueView mas_makeConstraints:^(MASConstraintMaker *make) { + //you can also attach debug keys to constaints + make.edges.equalTo(@1).key(@"ConflictingConstraint"); //composite constraint keys will be indexed + make.height.greaterThanOrEqualTo(@5000).key(@"ConstantConstraint"); + + make.top.equalTo(greenView.mas_bottom).offset(padding); + make.left.equalTo(superview.mas_left).offset(padding); + make.bottom.equalTo(superview.mas_bottom).offset(-padding).key(@"BottomConstraint"); + make.right.equalTo(superview.mas_right).offset(-padding); + make.height.equalTo(greenView.mas_height); + make.height.equalTo(redView.mas_height).key(@340954); //anything can be a key + }]; + + [greenView makeConstraints:^(MASConstraintMaker *make) { + make.top.greaterThanOrEqualTo(superview.top).offset(padding); + make.left.equalTo(superview.left).offset(padding); + make.bottom.equalTo(blueView.top).offset(-padding); + make.right.equalTo(redView.left).offset(-padding); + make.width.equalTo(redView.width); + + make.height.equalTo(redView.height); + make.height.equalTo(blueView.height); + }]; + + //with is semantic and option + [redView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(superview.mas_top).with.offset(padding); + make.left.equalTo(greenView.mas_right).offset(padding); + make.bottom.equalTo(blueView.mas_top).offset(-padding); + make.right.equalTo(superview.mas_right).offset(-padding); + make.width.equalTo(greenView.mas_width); + + make.height.equalTo(@[greenView, blueView]); + }]; + } + return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleDistributeView.m b/Examples/Masonry iOS Examples/MASExampleDistributeView.m index 19dde43b..467e953f 100644 --- a/Examples/Masonry iOS Examples/MASExampleDistributeView.m +++ b/Examples/Masonry iOS Examples/MASExampleDistributeView.m @@ -11,54 +11,53 @@ @implementation MASExampleDistributeView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - NSMutableArray *arr = @[].mutableCopy; - for (int i = 0; i < 4; i++) { - UIView *view = UIView.new; - view.backgroundColor = [self randomColor]; - view.layer.borderColor = UIColor.blackColor.CGColor; - view.layer.borderWidth = 2; - [self addSubview:view]; - [arr addObject:view]; - } - - unsigned int type = arc4random()%4; - switch (type) { - case 0: - [arr mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:20 leadSpacing:5 tailSpacing:5]; - [arr makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(@60); - make.height.equalTo(@60); - }]; - break; - case 1: - [arr mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:20 leadSpacing:5 tailSpacing:5]; - [arr makeConstraints:^(MASConstraintMaker *make) { - make.left.equalTo(@0); - make.width.equalTo(@60); - }]; - break; - case 2: - [arr mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength:30 leadSpacing:200 tailSpacing:30]; - [arr makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(@60); - make.height.equalTo(@60); - }]; - break; - case 3: - [arr mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength:30 leadSpacing:30 tailSpacing:200]; - [arr makeConstraints:^(MASConstraintMaker *make) { - make.left.equalTo(@0); - make.width.equalTo(@60); - }]; - break; - - default: - break; + if (self = [super init]) { + NSMutableArray *arr = @[].mutableCopy; + for (int i = 0; i < 4; i++) { + UIView *view = UIView.new; + view.backgroundColor = [self randomColor]; + view.layer.borderColor = UIColor.blackColor.CGColor; + view.layer.borderWidth = 2; + [self addSubview:view]; + [arr addObject:view]; + } + + unsigned int type = arc4random()%4; + switch (type) { + case 0: + [arr mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:20 leadSpacing:5 tailSpacing:5]; + [arr makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(@60); + make.height.equalTo(@60); + }]; + break; + case 1: + [arr mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:20 leadSpacing:5 tailSpacing:5]; + [arr makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(@0); + make.width.equalTo(@60); + }]; + break; + case 2: + [arr mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength:30 leadSpacing:200 tailSpacing:30]; + [arr makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(@60); + make.height.equalTo(@60); + }]; + break; + case 3: + [arr mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength:30 leadSpacing:30 tailSpacing:200]; + [arr makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(@0); + make.width.equalTo(@60); + }]; + break; + + default: + break; + } } - + return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleLabelView.m b/Examples/Masonry iOS Examples/MASExampleLabelView.m index 71326bf8..b5a57a69 100644 --- a/Examples/Masonry iOS Examples/MASExampleLabelView.m +++ b/Examples/Masonry iOS Examples/MASExampleLabelView.m @@ -20,34 +20,32 @@ @interface MASExampleLabelView () @implementation MASExampleLabelView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - // text courtesy of http://baconipsum.com/ - - self.shortLabel = UILabel.new; - self.shortLabel.numberOfLines = 1; - self.shortLabel.textColor = [UIColor purpleColor]; - self.shortLabel.lineBreakMode = NSLineBreakByTruncatingTail; - self.shortLabel.text = @"Bacon"; - [self addSubview:self.shortLabel]; - - self.longLabel = UILabel.new; - self.longLabel.numberOfLines = 8; - self.longLabel.textColor = [UIColor darkGrayColor]; - self.longLabel.lineBreakMode = NSLineBreakByTruncatingTail; - self.longLabel.text = @"Bacon ipsum dolor sit amet spare ribs fatback kielbasa salami, tri-tip jowl pastrami flank short loin rump sirloin. Tenderloin frankfurter chicken biltong rump chuck filet mignon pork t-bone flank ham hock."; - [self addSubview:self.longLabel]; - - [self.longLabel makeConstraints:^(MASConstraintMaker *make) { - make.left.equalTo(self.left).insets(kPadding); - make.top.equalTo(self.top).insets(kPadding); - }]; - - [self.shortLabel makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(self.longLabel.lastBaseline); - make.right.equalTo(self.right).insets(kPadding); - }]; + if (self = [super init]) { + // text courtesy of http://baconipsum.com/ + self.shortLabel = UILabel.new; + self.shortLabel.numberOfLines = 1; + self.shortLabel.textColor = [UIColor purpleColor]; + self.shortLabel.lineBreakMode = NSLineBreakByTruncatingTail; + self.shortLabel.text = @"Bacon"; + [self addSubview:self.shortLabel]; + + self.longLabel = UILabel.new; + self.longLabel.numberOfLines = 8; + self.longLabel.textColor = [UIColor darkGrayColor]; + self.longLabel.lineBreakMode = NSLineBreakByTruncatingTail; + self.longLabel.text = @"Bacon ipsum dolor sit amet spare ribs fatback kielbasa salami, tri-tip jowl pastrami flank short loin rump sirloin. Tenderloin frankfurter chicken biltong rump chuck filet mignon pork t-bone flank ham hock."; + [self addSubview:self.longLabel]; + + [self.longLabel makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.left).insets(kPadding); + make.top.equalTo(self.top).insets(kPadding); + }]; + + [self.shortLabel makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.longLabel.lastBaseline); + make.right.equalTo(self.right).insets(kPadding); + }]; + } return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleLayoutGuideViewController.m b/Examples/Masonry iOS Examples/MASExampleLayoutGuideViewController.m index 3839e2d2..7970f28b 100644 --- a/Examples/Masonry iOS Examples/MASExampleLayoutGuideViewController.m +++ b/Examples/Masonry iOS Examples/MASExampleLayoutGuideViewController.m @@ -15,10 +15,9 @@ @interface MASExampleLayoutGuideViewController () @implementation MASExampleLayoutGuideViewController - (instancetype)init { - self = [super init]; - if (!self) return nil; - - self.title = @"Layout Guides"; + if (self = [super init]) { + self.title = @"Layout Guides"; + } return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleListViewController.m b/Examples/Masonry iOS Examples/MASExampleListViewController.m index 6210d24f..6f225966 100644 --- a/Examples/Masonry iOS Examples/MASExampleListViewController.m +++ b/Examples/Masonry iOS Examples/MASExampleListViewController.m @@ -36,53 +36,51 @@ @interface MASExampleListViewController () @implementation MASExampleListViewController - (instancetype)init { - self = [super init]; - if (!self) return nil; - - self.title = @"Examples"; - - self.exampleControllers = @[ - [[MASExampleViewController alloc] initWithTitle:@"Basic" - viewClass:MASExampleBasicView.class], - [[MASExampleViewController alloc] initWithTitle:@"Update Constraints" - viewClass:MASExampleUpdateView.class], - [[MASExampleViewController alloc] initWithTitle:@"Remake Constraints" - viewClass:MASExampleRemakeView.class], - [[MASExampleViewController alloc] initWithTitle:@"Using Constants" - viewClass:MASExampleConstantsView.class], - [[MASExampleViewController alloc] initWithTitle:@"Composite Edges" - viewClass:MASExampleSidesView.class], - [[MASExampleViewController alloc] initWithTitle:@"Aspect Fit" - viewClass:MASExampleAspectFitView.class], - [[MASExampleViewController alloc] initWithTitle:@"Basic Animated" - viewClass:MASExampleAnimatedView.class], - [[MASExampleViewController alloc] initWithTitle:@"Debugging Helpers" - viewClass:MASExampleDebuggingView.class], - [[MASExampleViewController alloc] initWithTitle:@"Bacony Labels" - viewClass:MASExampleLabelView.class], - [[MASExampleViewController alloc] initWithTitle:@"UIScrollView" - viewClass:MASExampleScrollView.class], - [[MASExampleViewController alloc] initWithTitle:@"Array" - viewClass:MASExampleArrayView.class], - [[MASExampleViewController alloc] initWithTitle:@"Attribute Chaining" - viewClass:MASExampleAttributeChainingView.class], - [[MASExampleViewController alloc] initWithTitle:@"Margins" - viewClass:MASExampleMarginView.class], - [[MASExampleViewController alloc] initWithTitle:@"Views Distribute" - viewClass:MASExampleDistributeView.class], - - ]; - - if ([UIViewController instancesRespondToSelector:@selector(topLayoutGuide)]) - { - self.exampleControllers = [self.exampleControllers arrayByAddingObject:[[MASExampleLayoutGuideViewController alloc] init]]; + if (self = [super init]) { + self.title = @"Examples"; + + self.exampleControllers = @[ + [[MASExampleViewController alloc] initWithTitle:@"Basic" + viewClass:MASExampleBasicView.class], + [[MASExampleViewController alloc] initWithTitle:@"Update Constraints" + viewClass:MASExampleUpdateView.class], + [[MASExampleViewController alloc] initWithTitle:@"Remake Constraints" + viewClass:MASExampleRemakeView.class], + [[MASExampleViewController alloc] initWithTitle:@"Using Constants" + viewClass:MASExampleConstantsView.class], + [[MASExampleViewController alloc] initWithTitle:@"Composite Edges" + viewClass:MASExampleSidesView.class], + [[MASExampleViewController alloc] initWithTitle:@"Aspect Fit" + viewClass:MASExampleAspectFitView.class], + [[MASExampleViewController alloc] initWithTitle:@"Basic Animated" + viewClass:MASExampleAnimatedView.class], + [[MASExampleViewController alloc] initWithTitle:@"Debugging Helpers" + viewClass:MASExampleDebuggingView.class], + [[MASExampleViewController alloc] initWithTitle:@"Bacony Labels" + viewClass:MASExampleLabelView.class], + [[MASExampleViewController alloc] initWithTitle:@"UIScrollView" + viewClass:MASExampleScrollView.class], + [[MASExampleViewController alloc] initWithTitle:@"Array" + viewClass:MASExampleArrayView.class], + [[MASExampleViewController alloc] initWithTitle:@"Attribute Chaining" + viewClass:MASExampleAttributeChainingView.class], + [[MASExampleViewController alloc] initWithTitle:@"Margins" + viewClass:MASExampleMarginView.class], + [[MASExampleViewController alloc] initWithTitle:@"Views Distribute" + viewClass:MASExampleDistributeView.class], + ]; + + if ([UIViewController instancesRespondToSelector:@selector(topLayoutGuide)]) + { + self.exampleControllers = [self.exampleControllers arrayByAddingObject:[[MASExampleLayoutGuideViewController alloc] init]]; + } + + if ([UIView instancesRespondToSelector:@selector(safeAreaLayoutGuide)]) + { + self.exampleControllers = [self.exampleControllers arrayByAddingObject:[[MASExampleSafeAreaLayoutGuideViewController alloc] init]]; + } } - - if ([UIView instancesRespondToSelector:@selector(safeAreaLayoutGuide)]) - { - self.exampleControllers = [self.exampleControllers arrayByAddingObject:[[MASExampleSafeAreaLayoutGuideViewController alloc] init]]; - } - + return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleMarginView.m b/Examples/Masonry iOS Examples/MASExampleMarginView.m index 2dfcb6f8..ad17fee6 100644 --- a/Examples/Masonry iOS Examples/MASExampleMarginView.m +++ b/Examples/Masonry iOS Examples/MASExampleMarginView.m @@ -11,26 +11,25 @@ @implementation MASExampleMarginView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - UIView *lastView = self; - for (int i = 0; i < 10; i++) { - UIView *view = UIView.new; - view.backgroundColor = [self randomColor]; - view.layer.borderColor = UIColor.blackColor.CGColor; - view.layer.borderWidth = 2; - view.layoutMargins = UIEdgeInsetsMake(5, 10, 15, 20); - [self addSubview:view]; - - [view mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.equalTo(lastView.topMargin); - make.bottom.equalTo(lastView.bottomMargin); - make.left.equalTo(lastView.leftMargin); - make.right.equalTo(lastView.rightMargin); - }]; - - lastView = view; + if (self = [super init]) { + UIView *lastView = self; + for (int i = 0; i < 10; i++) { + UIView *view = UIView.new; + view.backgroundColor = [self randomColor]; + view.layer.borderColor = UIColor.blackColor.CGColor; + view.layer.borderWidth = 2; + view.layoutMargins = UIEdgeInsetsMake(5, 10, 15, 20); + [self addSubview:view]; + + [view mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(lastView.topMargin); + make.bottom.equalTo(lastView.bottomMargin); + make.left.equalTo(lastView.leftMargin); + make.right.equalTo(lastView.rightMargin); + }]; + + lastView = view; + } } return self; diff --git a/Examples/Masonry iOS Examples/MASExampleRemakeView.m b/Examples/Masonry iOS Examples/MASExampleRemakeView.m index 07006ddc..77383a66 100644 --- a/Examples/Masonry iOS Examples/MASExampleRemakeView.m +++ b/Examples/Masonry iOS Examples/MASExampleRemakeView.m @@ -20,19 +20,18 @@ - (void)toggleButtonPosition; @implementation MASExampleRemakeView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - self.movingButton = [UIButton buttonWithType:UIButtonTypeSystem]; - [self.movingButton setTitle:@"Move Me!" forState:UIControlStateNormal]; - self.movingButton.layer.borderColor = UIColor.greenColor.CGColor; - self.movingButton.layer.borderWidth = 3; - - [self.movingButton addTarget:self action:@selector(toggleButtonPosition) forControlEvents:UIControlEventTouchUpInside]; - [self addSubview:self.movingButton]; - - self.topLeft = YES; - + if (self = [super init]) { + self.movingButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [self.movingButton setTitle:@"Move Me!" forState:UIControlStateNormal]; + self.movingButton.layer.borderColor = UIColor.greenColor.CGColor; + self.movingButton.layer.borderWidth = 3; + + [self.movingButton addTarget:self action:@selector(toggleButtonPosition) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:self.movingButton]; + + self.topLeft = YES; + } + return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleScrollView.m b/Examples/Masonry iOS Examples/MASExampleScrollView.m index eeac6795..5411a3a6 100644 --- a/Examples/Masonry iOS Examples/MASExampleScrollView.m +++ b/Examples/Masonry iOS Examples/MASExampleScrollView.m @@ -24,18 +24,17 @@ @interface MASExampleScrollView () @implementation MASExampleScrollView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - UIScrollView *scrollView = UIScrollView.new; - self.scrollView = scrollView; - scrollView.backgroundColor = [UIColor grayColor]; - [self addSubview:scrollView]; - [self.scrollView makeConstraints:^(MASConstraintMaker *make) { - make.edges.equalTo(self); - }]; - - [self generateContent]; + if (self = [super init]) { + UIScrollView *scrollView = UIScrollView.new; + self.scrollView = scrollView; + scrollView.backgroundColor = [UIColor grayColor]; + [self addSubview:scrollView]; + [self.scrollView makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + + [self generateContent]; + } return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleSidesView.m b/Examples/Masonry iOS Examples/MASExampleSidesView.m index 82dea4ac..b85e7907 100644 --- a/Examples/Masonry iOS Examples/MASExampleSidesView.m +++ b/Examples/Masonry iOS Examples/MASExampleSidesView.m @@ -11,24 +11,23 @@ @implementation MASExampleSidesView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - UIView *lastView = self; - for (int i = 0; i < 10; i++) { - UIView *view = UIView.new; - view.backgroundColor = [self randomColor]; - view.layer.borderColor = UIColor.blackColor.CGColor; - view.layer.borderWidth = 2; - [self addSubview:view]; - - [view mas_makeConstraints:^(MASConstraintMaker *make) { - make.edges.equalTo(lastView).insets(UIEdgeInsetsMake(5, 10, 15, 20)); - }]; - - lastView = view; + if (self = [super init]) { + UIView *lastView = self; + for (int i = 0; i < 10; i++) { + UIView *view = UIView.new; + view.backgroundColor = [self randomColor]; + view.layer.borderColor = UIColor.blackColor.CGColor; + view.layer.borderWidth = 2; + [self addSubview:view]; + + [view mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(lastView).insets(UIEdgeInsetsMake(5, 10, 15, 20)); + }]; + + lastView = view; + } } - + return self; } diff --git a/Examples/Masonry iOS Examples/MASExampleUpdateView.m b/Examples/Masonry iOS Examples/MASExampleUpdateView.m index e93b944a..f90eafa0 100644 --- a/Examples/Masonry iOS Examples/MASExampleUpdateView.m +++ b/Examples/Masonry iOS Examples/MASExampleUpdateView.m @@ -18,24 +18,23 @@ @interface MASExampleUpdateView () @implementation MASExampleUpdateView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - self.growingButton = [UIButton buttonWithType:UIButtonTypeSystem]; - [self.growingButton setTitle:@"Grow Me!" forState:UIControlStateNormal]; - self.growingButton.layer.borderColor = UIColor.greenColor.CGColor; - self.growingButton.layer.borderWidth = 3; - - [self.growingButton addTarget:self action:@selector(didTapGrowButton:) forControlEvents:UIControlEventTouchUpInside]; - [self addSubview:self.growingButton]; - [self.growingButton makeConstraints:^(MASConstraintMaker *make) { - make.center.equalTo(self); - make.width.equalTo(@(self.buttonSize.width)).priorityLow(); - make.height.equalTo(@(self.buttonSize.height)).priorityLow(); - make.width.lessThanOrEqualTo(self); - make.height.lessThanOrEqualTo(self); - }]; - + if (self = [super init]) { + self.growingButton = [UIButton buttonWithType:UIButtonTypeSystem]; + [self.growingButton setTitle:@"Grow Me!" forState:UIControlStateNormal]; + self.growingButton.layer.borderColor = UIColor.greenColor.CGColor; + self.growingButton.layer.borderWidth = 3; + + [self.growingButton addTarget:self action:@selector(didTapGrowButton:) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:self.growingButton]; + [self.growingButton makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(self); + make.width.equalTo(@(self.buttonSize.width)).priorityLow(); + make.height.equalTo(@(self.buttonSize.height)).priorityLow(); + make.width.lessThanOrEqualTo(self); + make.height.lessThanOrEqualTo(self); + }]; + } + self.buttonSize = CGSizeMake(100, 100); return self; diff --git a/Examples/Masonry iOS Examples/MASExampleViewController.m b/Examples/Masonry iOS Examples/MASExampleViewController.m index 68d76693..99b6fa1c 100644 --- a/Examples/Masonry iOS Examples/MASExampleViewController.m +++ b/Examples/Masonry iOS Examples/MASExampleViewController.m @@ -18,11 +18,10 @@ @interface MASExampleViewController () @implementation MASExampleViewController - (instancetype)initWithTitle:(NSString *)title viewClass:(Class)viewClass { - self = [super init]; - if (!self) return nil; - - self.title = title; - self.viewClass = viewClass; + if (self = [super init]) { + self.title = title; + self.viewClass = viewClass; + } return self; } diff --git a/README.md b/README.md index 6f8998db..c290110e 100644 --- a/README.md +++ b/README.md @@ -335,11 +335,10 @@ For an example of how to set this up take a look at the **Masonry iOS Examples** @implementation DIYCustomView - (instancetype)init { - self = [super init]; - if (!self) return nil; - - // --- Create your views here --- - self.button = [[UIButton alloc] init]; + if (self = [super init]) { + // --- Create your views here --- + self.button = [[UIButton alloc] init]; + } return self; } diff --git a/Tests/Specs/MASConstraintDelegateMock.m b/Tests/Specs/MASConstraintDelegateMock.m index afb48c3b..7023cc6c 100644 --- a/Tests/Specs/MASConstraintDelegateMock.m +++ b/Tests/Specs/MASConstraintDelegateMock.m @@ -11,11 +11,10 @@ @implementation MASConstraintDelegateMock - (instancetype)init { - self = [super init]; - if (!self) return nil; - - self.constraints = NSMutableArray.new; - self.chainedConstraints = NSMutableArray.new; + if (self = [super init]) { + self.constraints = NSMutableArray.new; + self.chainedConstraints = NSMutableArray.new; + } return self; }