{"id":3829,"date":"2017-11-14T13:45:55","date_gmt":"2017-11-14T05:45:55","guid":{"rendered":"http:\/\/benjenq.ddns.net\/blog\/%e3%80%90%e7%a2%bc%e8%be%b2%e3%80%91%e5%be%9e-object-c-%e5%88%b0-c\/"},"modified":"2017-11-14T13:45:55","modified_gmt":"2017-11-14T05:45:55","slug":"%e3%80%90%e7%a2%bc%e8%be%b2%e3%80%91%e5%be%9e-object-c-%e5%88%b0-c","status":"publish","type":"post","link":"http:\/\/benjenq.ddns.net\/blog\/%e3%80%90%e7%a2%bc%e8%be%b2%e3%80%91%e5%be%9e-object-c-%e5%88%b0-c\/","title":{"rendered":"\u3010\u78bc\u8fb2\u3011\u5f9e Object-C \u5230 C#"},"content":{"rendered":"<p><img decoding=\"async\" title=\"CSharp_ObjC\" src=\"https:\/\/pic.pimg.tw\/benjenq\/1510641211-401538570.png\" alt=\"CSharp_ObjC\" border=\"0\"><\/p>\n<p>\u6700\u8fd1\u624b\u908a\u9032\u884c\u4e00\u9805\u5de5\u7a0b\uff0c\u8981\u5c07 Object-C \u7684\u7a0b\u5f0f\u78bc\u300c\u79fb\u690d\u300d\u5230 C# \u7684\u6a5f\u5668\u4e0a\u3002Object-C \u662f\u62ff\u624b\u7684\uff0c\u4f46 C# \u5b8c\u5168\u4e0d\u719f\u554a\uff5e\u65bc\u662f\u4e0a\u7db2\u627e\u4e86\u4e00\u4e9b\u8cc7\u6599\uff0c\u7df4\u7fd2\u5617\u8a66\u8a2d\u8a08\u4e00\u500b\u5c0f\u7bc4\u4f8b\uff0c\u7528Object-C \u8207 C# \u5404\u5beb\u4e86\u4e00\u4efd\uff0c\u9ad4\u6703\u5176\u4e2d\u7684\u5967\u5999\u3002<\/p>\n<p><!-- more -->\u7bc4\u4f8b\u662f\u8a2d\u8a08\u4e00\u500b\u985e\u5225 iPhone4S\uff0c\u7528\u5be6\u4f8b\u8207\u55ae\u4f8b\u5ba3\u544a\u70ba\u7269\u4ef6\u4e26\u8ce6\u4e88\u9810\u8a2d\u503c\u3002<\/p>\n<p>Object-C<\/p>\n<pre>iPhone4S.h<br>#import &lt;Foundation\/Foundation.h&gt;<br><br>@interface iPhone4S : NSObject<br><br>@property (nonatomic,retain) NSString *simCode;<br><br>+ (instancetype)shareInstance;<br><br>- (NSString *)doCallOut:(NSString *)phoneNumber;<br><br>- (NSString *)handUp;<br><br>- (NSString *)volumeChanged:(NSInteger)volumeVal;<br><br>- (NSString *)doVibrate;<br><br>- (NSString *)doSiri:(NSString *)speakCommand;<br><br>@end<br><br>iPhone4S.m<br>#import \"iPhone4S.h\"<br><br>@implementation iPhone4S<br><br>static iPhone4S *theiPhone4s = nil;<br><br>- (instancetype)init{<br>    self = [super init];<br>    if (self) {<br>        self.simCode = @\"0000\";<br>    }<br>    return self;<br>}<br><br>+ (instancetype)shareInstance{<br>    @synchronized (theiPhone4s) {<br>        if (theiPhone4s == nil) {<br>            theiPhone4s = [[iPhone4S alloc] init];<br>        }<br>        else{<br>            NSLog(@\"NOT NEW \u65b0\u5efaiphone4S\");<br>        }<br>    }<br>    return theiPhone4s;<br>}<br><br><br>- (NSString *)doCallOut:(NSString *)phoneNumber{<br>    NSLog(@\"iOS\u6253\u96fb\u8a71\u7d66%@\",phoneNumber);<br>    return @\"\u64a5\u865f\u4e2d\";<br>    <br>}<br><br>- (NSString *)handUp{<br>    NSLog(@\"iOS\u5c07\u901a\u8a71\u4e2d\u96fb\u8a71\u7d50\u675f\");<br>    return @\"\u7d50\u675f\u901a\u8a71\";<br>}<br><br>- (NSString *)volumeChanged:(NSInteger)volumeVal{<br>    NSLog(@\"iOS\u5c07\u97f3\u91cf\u8abf\u6574\u70ba%li\",(long)volumeVal);<br>    return @\"\u5b8c\u6210\u8abf\u97f3\u91cf\";<br>}<br><br>- (NSString *)doVibrate{<br>    NSLog(@\"iOS\u5c07\u8f49\u632f\u52d5\");<br>    return @\"\u5b8c\u6210\u8f49\u632f\u52d5\";<br>}<br><br>- (NSString *)doSiri:(NSString *)speakCommand{<br>    return [@\"Siri\u8aaa:\" stringByAppendingString:speakCommand] ;<br>}<br><br>@end<\/pre>\n<p>C#<\/p>\n<pre>iPhone4S.cs<br>\nusing System;\npublic class iPhone4S\n{\n#region \u5ba3\u544a\u8b8a\u6578\u540d\u7a31\npublic string simCode { set; get; } \/\/\u59d3\u540d\n#endregion\nprivate static readonly object locker = new object();\nprivate static iPhone4S theiPhone4s = null;\n\/* \u4f7f\u7528 private \u5247\u7981\u6b62\u5f9e\u5916\u90e8\u7522\u751f\u5be6\u4f8b\uff0c\u7528\u65bcSingleton\nprivate iphone4S()\n{\nsimcode = \"0000\";\nConsole.WriteLine(\"iphone4S \u96fb\u8a71:\" + phonenumber);\n}\n*\/\npublic iPhone4S()\n{\nsimCode = \"0000\";\n}\npublic static iPhone4S shareInstance()\n{\nlock (locker)\n{\nif (theiPhone4s == null)\n{\ntheiPhone4s = new iPhone4S();\n}\nelse\n{\nConsole.WriteLine(\"NOT NEW \u65b0\u5efaiphone4S\");\n}\n}\nreturn theiPhone4s;\n}\npublic string doCallOut(string phoneNumber)\n{\nConsole.WriteLine(\"iOS\u6253\u96fb\u8a71\u7d66\" + phoneNumber);\nreturn \"\u64a5\u865f\u4e2d\";\n}\npublic string handUp()\n{\nConsole.WriteLine(\"iOS\u5c07\u901a\u8a71\u4e2d\u96fb\u8a71\u7d50\u675f\");\nreturn \"\u7d50\u675f\u901a\u8a71\";\n}\npublic string volumeChanged(int volumeVal)\n{\nConsole.WriteLine(\"iOS\u5c07\u97f3\u91cf\u8abf\u6574\u70ba\" + volumeVal);\nreturn \"\u5b8c\u6210\u8abf\u97f3\u91cf\";\n}\npublic string doVibrate()\n{\nConsole.WriteLine(\"iOS\u5c07\u8f49\u632f\u52d5\");\nreturn \"\u5b8c\u6210\u8f49\u632f\u52d5\";\n}\npublic string doSiri(string speakCommand)\n{\nreturn \"Siri\u8aaa:\" + speakCommand;\n}\n}\n<\/pre>\n<p>\u9a57\u8b49\uff1a\u8a2d\u8a08\u4e00\u500b\u6309\u9215\uff0cprint \u7d50\u679c<\/p>\n<p>Object-C<\/p>\n<pre>-(IBAction)btnLogSimCode_Click:(id)sender{<br>    iPhone4S *myPhone = [[iPhone4S alloc] init];<br>    iPhone4S *companyPhone = [iPhone4S shareInstance];<br>    iPhone4S *companyPhone2 = [iPhone4S shareInstance];<br>    <br>    myPhone.simCode = @\"1234\";<br>    companyPhone2.simCode = @\"5678\";<br>    <br>    NSLog(@\"myPhone \u96fb\u8a71 Sim Code:%@\" , myPhone.simCode);<br>    NSLog(@\"companyPhone \u96fb\u8a71 Sim Code:%@\" , companyPhone.simCode);<br>    NSLog(@\"companyPhone2 \u96fb\u8a71 Sim Code:%@\" , companyPhone2.simCode);<br>}<br><br>\u7d50\u679c\u8f38\u51fa\uff1a<br>[1742:111130] NOT NEW \u65b0\u5efaiphone4S<br>[1742:111130] myPhone \u96fb\u8a71 Sim Code:1234<br>[1742:111130] companyPhone \u96fb\u8a71 Sim Code:5678<br>[1742:111130] companyPhone2 \u96fb\u8a71 Sim Code:5678<\/pre>\n<p>C#<\/p>\n<pre>private void btnLogSimCode_Click(object sender, EventArgs e)<br>{<br>    iPhone4S myPhone = new iPhone4S();<br>    iPhone4S companyPhone = iPhone4S.shareInstance();<br>    iPhone4S companyPhone2 = iPhone4S.shareInstance();<br><br>    myPhone.simCode = \"1234\";<br>    companyPhone2.simCode = \"5678\";<br><br>    Console.WriteLine(\"myPhone \u96fb\u8a71 Sim Code:\" + myPhone.simCode);<br>    Console.WriteLine(\"companyPhone \u96fb\u8a71 Sim Code:\" + companyPhone.simCode);<br>    Console.WriteLine(\"companyPhone2 \u96fb\u8a71 Sim Code:\" + companyPhone2.simCode);<br>}<br><br>\u7d50\u679c\u8f38\u51fa:<br>NOT NEW \u65b0\u5efaiphone4S<br>myPhone \u96fb\u8a71 Sim Code:1234<br>companyPhone \u96fb\u8a71 Sim Code:5678<br>companyPhone2 \u96fb\u8a71 Sim Code:5678<\/pre>\n<p>&nbsp;<\/p>\n<p>\u5176\u5be6\u6578\u5341\u7a2e\u7a0b\u5f0f\u8a9e\u8a00\u767c\u5c55\u5230\u73fe\u5728\uff0c\u53ea\u8981\u73fe\u5728\u9084\u5728\u4e3b\u6d41\u7684\uff0c\u4e0d\u7ba1\u662f\u54ea\u4e00\u7a2e\uff0c\u6982\u5ff5\u4e0a\u90fd\u6709\u5171\u901a\u548c\u76f8\u540c\u7684\u90e8\u5206\u3002\u53ea\u662f\u8a9e\u6cd5\u4e0a\u7684\u5dee\u7570\u9084\u771f\u4ee4\u4eba\u8166\u888b\u7cfe\u7d50\uff0c<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\u624b\u908a\u9032\u884c\u4e00\u9805\u5de5\u7a0b\uff0c\u8981\u5c07 Object-C \u7684\u7a0b\u5f0f\u78bc\u300c\u79fb\u690d\u300d\u5230 C# \u7684\u6a5f\u5668\u4e0a\u3002Object-C \u662f\u62ff\u624b\u7684\uff0c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[51],"tags":[],"class_list":["post-3829","post","type-post","status-publish","format-standard","hentry","category-51"],"_links":{"self":[{"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/posts\/3829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/comments?post=3829"}],"version-history":[{"count":0,"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/posts\/3829\/revisions"}],"wp:attachment":[{"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/media?parent=3829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/categories?post=3829"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/benjenq.ddns.net\/blog\/wp-json\/wp\/v2\/tags?post=3829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}