8000 swift and objc call each other · codepongo/utocode@725a45d · GitHub
[go: up one dir, main page]

Skip to content 8000

Commit 725a45d

Browse files
jackjack
authored andcommitted
swift and objc call each other
1 parent a165255 commit 725a45d

File tree

7 files changed

+340
-0
lines changed

7 files changed

+340
-0
lines changed
Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 46;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
04E407551CACB2B8004F072F /* O.m in Sources */ = {isa = PBXBuildFile; fileRef = 04E407541CACB2B8004F072F /* O.m */; };
11+
04FAFB4C1CACAC9800356974 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 04FAFB4B1CACAC9800356974 /* main.m */; };
12+
04FAFB541CACAD8000356974 /* s.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04FAFB531CACAD8000356974 /* s.swift */; };
13+
/* End PBXBuildFile section */
14+
15+
/* Begin PBXCopyFilesBuildPhase section */
16+
04FAFB461CACAC9800356974 /* CopyFiles */ = {
17+
isa = PBXCopyFilesBuildPhase;
18+
buildActionMask = 2147483647;
19+
dstPath = /usr/share/man/man1/;
20+
dstSubfolderSpec = 0;
21+
files = (
22+
);
23+
runOnlyForDeploymentPostprocessing = 1;
24+
};
25+
/* End PBXCopyFilesBuildPhase section */
26+
27+
/* Begin PBXFileReference section */
28+
04E407531CACB2B8004F072F /* O.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O.h; sourceTree = "<group>"; };
29+
04E407541CACB2B8004F072F /* O.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O.m; sourceTree = "<group>"; };
30+
04FAFB481CACAC9800356974 /* objc-swift */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "objc-swift"; sourceTree = BUILT_PRODUCTS_DIR; };
31+
04FAFB4B1CACAC9800356974 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
32+
04FAFB521CACAD8000356974 /* objc-swift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "objc-swift-Bridging-Header.h"; sourceTree = "<group>"; };
33+
04FAFB531CACAD8000356974 /* s.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = s.swift; sourceTree = "<group>"; };
34+
/* End PBXFileReference section */
35+
36+
/* Begin PBXFrameworksBuildPhase section */
37+
04FAFB451CACAC9800356974 /* Frameworks */ = {
38+
isa = PBXFrameworksBuildPhase;
39+
buildActionMask = 2147483647;
40+
files = (
41+
);
42+
runOnlyForDeploymentPostprocessing = 0;
43+
};
44+
/* End PBXFrameworksBuildPhase section */
45+
46+
/* Begin PBXGroup section */
47+
04FAFB3F1CACAC9800356974 = {
48+
isa = PBXGroup;
49+
children = (
50+
04FAFB4A1CACAC9800356974 /* objc-swift */,
51+
04FAFB491CACAC9800356974 /* Products */,
52+
);
53+
sourceTree = "<group>";
54+
};
55+
04FAFB491CACAC9800356974 /* Products */ = {
56+
isa = PBXGroup;
57+
children = (
58+
04FAFB481CACAC9800356974 /* objc-swift */,
59+
);
60+
name = Products;
61+
sourceTree = "<group>";
62+
};
63+
04FAFB4A1CACAC9800356974 /* objc-swift */ = {
64+
isa = PBXGroup;
65+
children = (
66+
04FAFB4B1CACAC9800356974 /* main.m */,
67+
04FAFB531CACAD8000356974 /* s.swift */,
68+
04FAFB521CACAD8000356974 /* objc-swift-Bridging-Header.h */,
69+
04E407531CACB2B8004F072F /* O.h */,
70+
04E407541CACB2B8004F072F /* O.m */,
71+
);
72+
path = "objc-swift";
73+
sourceTree = "<group>";
74+
};
75+
/* End PBXGroup section */
76+
77+
/* Begin PBXNativeTarget section */
78+
04FAFB471CACAC9800356974 /* objc-swift */ = {
79+
isa = PBXNativeTarget;
80+
buildConfigurationList = 04FAFB4F1CACAC9800356974 /* Build configuration list for PBXNativeTarget "objc-swift" */;
81+
buildPhases = (
82+
04FAFB441CACAC9800356974 /* Sources */,
83+
04FAFB451CACAC9800356974 /* Frameworks */,
84+
04FAFB461CACAC9800356974 /* CopyFiles */,
85+
);
86+
buildRules = (
87+
);
88+
dependencies = (
89+
);
90+
name = "objc-swift";
91+
productName = "objc-swift";
92+
productReference = 04FAFB481CACAC9800356974 /* objc-swift */;
93+
productType = "com.apple.product-type.tool";
94+
};
95+
/* End PBXNativeTarget section */
96+
97+
/* Begin PBXProject section */
98+
04FAFB401CACAC9800356974 /* Project object */ = {
99+
isa = PBXProject;
100+
attributes = {
101+
LastUpgradeCheck = 0720;
102+
ORGANIZATIONNAME = zuohaitao;
103+
TargetAttributes = {
104+
04FAFB471CACAC9800356974 = {
105+
CreatedOnToolsVersion = 7.2;
106+
};
107+
};
108+
};
109+
buildConfigurationList = 04FAFB431CACAC9800356974 /* Build configuration list for PBXProject "objc-swift" */;
110+
compatibilityVersion = "Xcode 3.2";
111+
developmentRegion = English;
112+
hasScannedForEncodings = 0;
113+
knownRegions = (
114+
en,
115+
);
116+
mainGroup = 04FAFB3F1CACAC9800356974;
117+
productRefGroup = 04FAFB491CACAC9800356974 /* Products */;
118+
projectDirPath = "";
119+
projectRoot = "";
120+
targets = (
121+
04FAFB471CACAC9800356974 /* objc-swift */,
122+
);
123+
};
124+
/* End PBXProject section */
125+
126+
/* Begin PBXSourcesBuildPhase section */
127+
04FAFB441CACAC9800356974 /* Sources */ = {
128+
isa = PBXSourcesBuildPhase;
129+
buildActionMask = 2147483647;
130+
files = (
131+
04E407551CACB2B8004F072F /* O.m in Sources */,
132+
04FAFB4C1CACAC9800356974 /* main.m in Sources */,
133+
04FAFB541CACAD8000356974 /* s.swift in Sources */,
134+
);
135+
runOnlyForDeploymentPostprocessing = 0;
136+
};
137+
/* End PBXSourcesBuildPhase section */
138+
139+
/* Begin XCBuildConfiguration section */
140+
04FAFB4D1CACAC9800356974 /* Debug */ = {
141+
isa = XCBuildConfiguration;
142+
buildSettings = {
143+
ALWAYS_SEARCH_USER_PATHS = NO;
144+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
145+
CLANG_CXX_LIBRARY = "libc++";
146+
CLANG_ENABLE_MODULES = YES;
147+
CLANG_ENABLE_OBJC_ARC = YES;
148+
CLANG_WARN_BOOL_CONVERSION = YES;
149+
CLANG_WARN_CONSTANT_CONVERSION = YES;
150+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
151+
CLANG_WARN_EMPTY_BODY = YES;
152+
CLANG_WARN_ENUM_CONVERSION = YES;
153+
CLANG_WARN_INT_CONVERSION = YES;
154+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
155+
CLANG_WARN_UNREACHABLE_CODE = YES;
156+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
157+
CODE_SIGN_IDENTITY = "-";
158+
COPY_PHASE_STRIP = NO;
159+
DEBUG_INFORMATION_FORMAT = dwarf;
160+
ENABLE_STRICT_OBJC_MSGSEND = YES;
161+
ENABLE_TESTABILITY = YES;
162+
GCC_C_LANGUAGE_STANDARD = gnu99;
163+
GCC_DYNAMIC_NO_PIC = NO;
164+
GCC_NO_COMMON_BLOCKS = YES;
165+
GCC_OPTIMIZATION_LEVEL = 0;
166+
GCC_PREPROCESSOR_DEFINITIONS = (
167+
"DEBUG=1",
168+
"$(inherited)",
169+
);
170+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
171+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
172+
GCC_WARN_UNDECLARED_SELECTOR = YES;
173+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
174+
GCC_WARN_UNUSED_FUNCTION = YES;
175+
GCC_WARN_UNUSED_VARIABLE = YES;
176+
MACOSX_DEPLOYMENT_TARGET = 10.11;
177+
MTL_ENABLE_DEBUG_INFO = YES;
178+
ONLY_ACTIVE_ARCH = YES;
179+
SDKROOT = macosx;
180+
};
181+
name = Debug;
182+
};
183+
04FAFB4E1CACAC9800356974 /* Release */ = {
184+
isa = XCBuildConfiguration;
185+
buildSettings = {
186+
ALWAYS_SEARCH_USER_PATHS = NO;
187+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
188+
CLANG_CXX_LIBRARY = "libc++";
189+
CLANG_ENABLE_MODULES = YES;
190+
CLANG_ENABLE_OBJC_ARC = YES;
191+
CLANG_WARN_BOOL_CONVERSION = YES;
192+
CLANG_WARN_CONSTANT_CONVERSION = YES;
193+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
194+
CLANG_WARN_EMPTY_BODY = YES;
195+
CLANG_WARN_ENUM_CONVERSION = YES;
196+
CLANG_WARN_INT_CONVERSION = YES;
197+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
198+
CLANG_WARN_UNREACHABLE_CODE = YES;
199+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
200+
CODE_SIGN_IDENTITY = "-";
201+
COPY_PHASE_STRIP = NO;
202+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
203+
ENABLE_NS_ASSERTIONS = NO;
204+
ENABLE_STRICT_OBJC_MSGSEND = YES;
205+
GCC_C_LANGUAGE_STANDARD = gnu99;
206+
GCC_NO_COMMON_BLOCKS = YES;
207+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
208+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
209+
GCC_WARN_UNDECLARED_SELECTOR = YES;
210+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
211+
GCC_WARN_UNUSED_FUNCTION = YES;
212+
GCC_WARN_UNUSED_VARIABLE = YES;
213+
MACOSX_DEPLOYMENT_TARGET = 10.11;
214+
MTL_ENABLE_DEBUG_INFO = NO;
215+
SDKROOT = macosx;
216+
};
217+
name = Release;
218+
};
219+
04FAFB501CACAC9800356974 /* Debug */ = {
220+
isa = XCBuildConfiguration;
221+
buildSettings = {
222+
CLANG_ENABLE_MODULES = YES;
223+
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
224+
PRODUCT_NAME = "$(TARGET_NAME)";
225+
SWIFT_OBJC_BRIDGING_HEADER = "objc-swift/objc-swift-Bridging-Header.h";
226+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
227+
};
228+
name = Debug;
229+
};
230+
04FAFB511CACAC9800356974 /* Release */ = {
231+
isa = XCBuildConfiguration;
232+
buildSettings = {
233+
CLANG_ENABLE_MODULES = YES;
234+
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
235+
PRODUCT_NAME = "$(TARGET_NAME)";
236+
SWIFT_OBJC_BRIDGING_HEADER = "objc-swift/objc-swift-Bridging-Header.h";
237+
};
238+
name = Release;
239+
};
240+
/* End XCBuildConfiguration section */
241+
242+
/* Begin XCConfigurationList section */
243+
04FAFB431CACAC9800356974 /* Build configuration list for PBXProject "objc-swift" */ = {
244+
isa = XCConfigurationList;
245+
buildConfigurations = (
246+
04FAFB4D1CACAC9800356974 /* Debug */,
247+
04FAFB4E1CACAC9800356974 /* Release */,
248+
);
249+
defaultConfigurationIsVisible = 0;
250+
defaultConfigurationName = Release;
251+
};
252+
04FAFB4F1CACAC9800356974 /* Build configuration list for PBXNativeTarget "objc-swift" */ = {
253+
isa = XCConfigurationList;
254+
buildConfigurations = (
255+
04FAFB501CACAC9800356974 /* Debug */,
256+
04FAFB511CACAC9800356974 /* Release */,
257+
);
258+
defaultConfigurationIsVisible = 0;
259+
defaultConfigurationName = Release;
260+
};
261+
/* End XCConfigurationList section */
262+
};
263+
rootObject = 04FAFB401CACAC9800356974 /* Project object */;
264+
}

xos/objc-swift/objc-swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

xos/objc-swift/objc-swift/O.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// O.h
3+
// objc-swift
4+
//
5+
// Created by jack on 16/3/31.
6+
// Copyright © 2016年 zuohaitao. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
@interface O : NSObject
12+
-(void)m;
13+
@end

xos/objc-swift/objc-swift/O.m

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// O.m
3+
// objc-swift
4+
//
5+
// Created by jack on 16/3/31.
6+
// Copyright © 2016年 zuohaitao. All rights reserved.
7+
//
8+
9+
#import "O.h"
10+
11+
@implementation O
12+
-(void)m {
13+
NSLog(@"%s", __FUNCTION__);
14+
}
15+
@end

xos/objc-swift/objc-swift/main.m

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// main.m
3+
// objc-swift
4+
//
5+
// Created by jack on 16/3/31.
6+
// Copyright © 2016年 zuohaitao. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
#import "objc_swift-Swift.h"
11+
12+
int main(int argc, const char * argv[]) {
13+
@autoreleasepool {
14+
S* s = [[S alloc]init];
15+
[s m];
16+
}
17+
return 0;
18+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//
2+
// Use this file to import your target's public headers that you would like to expose to Swift.
3+
//
4+
5+
#import "O.h"

xos/objc-swift/objc-swift/s.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// s.swift
3+
// objc-swift
4+
//
5+
// Created by jack on 16/3/31.
6+
// Copyright © 2016年 zuohaitao. All rights reserved.
7+
//
8+
9+
import Foundation
10+
11+
12+
@objc class S : NSObject{
13+
let o:O = O()
14+
func m() {
15+
o.m()
16+
print(__FUNCTION__)
17+
}
18+
}

0 commit comments

Comments
 (0)
0