X



プログラミング言語Swift Part4 [無断転載禁止]©2ch.net
0001名称未設定 転載ダメ©2ch.net(8級) (ワッチョイ 33a8-bj6g)
垢版 |
2017/01/19(木) 03:18:15.58ID:YIGkvQUZ0

iBooks:
The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
Using Swift with Cocoa and Objective-C
https://itunes.apple.com/jp/book/using-swift-cocoa-objective/id888894773?mt=11

ドキュメント:
The Swift Programming Language
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/
Swift Standard Library
https://developer.apple.com/reference/swift


http://swiftdoc.org/
https://swift.org/
https://developer.apple.com/swift/blog/

関連スレ
http://echo.2ch.net/test/read.cgi/tech/1476758084/l50

過去スレ
http://potato.2ch.net/test/read.cgi/mac/1408762479/
http://anago.2ch.net/test/read.cgi/mac/1401736921/
http://anago.2ch.net/mac/kako/1401/14017/1401736249.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0058名称未設定 (ワッチョイ bfdd-WRcl)
垢版 |
2017/06/28(水) 18:19:34.12ID:Vq2TH+MW0
って、>>53の最もいいねwって付いているのに及び付けてるのに言いに行けば?
何言ってんの?頭大丈夫?と思われるだけだと思うがw
0059名称未設定 (ワッチョイ 9fd9-Tszu)
垢版 |
2017/06/28(水) 21:50:10.42ID:feiqJCoM0
ド素人かな
-Ononeはデバッグ用であって速さなんか誰も求めてないぞ?
遅くなってもいいから色んなデバッグ用に有用な情報を埋め込むモードだぞ?
頭大丈夫?
0060名称未設定 (ワッチョイ bfdd-WRcl)
垢版 |
2017/06/28(水) 23:43:55.56ID:Vq2TH+MW0
>>59
-O 自体はオプションであってなければコンパイルできないわけじゃないぞ?玄人さん
ちなみにちゃんとしたデバッグオプションは別にあるけどな

どうも、オプティマイズの意味がわかってなさそうにしか見えないな。デバッグ用って言い切ってしまうあたり、すげえな自称ど素人じゃない人はw
(ちなみに一般的にオプティマイズするとほげほげな場合もまあ稀にあるとかないとかw)

てか、なにをオプティマイズありきに必死なの?オ
プティマイズ有無でこんな差があるのは珍しすぎる、いったいなんなんだ?という技術的w興味は普通わくだろうと思うんだがな、自称ど素人じゃない人なら尚更
ただ、それだけだよ?
0061名称未設定 (ワッチョイW c97c-HpRm)
垢版 |
2017/06/29(木) 00:20:19.33ID:lD0R4OzI0
良くある最適化のトラブルとしては、基本的なインライン展開なんかでさえ期待通りに動かなくなるケースはあるから、デバッグというか、問題の切り分けに最適化なし。で走らせてみる必要がある。ってのは別に間違ってないと思うんだけど。
Swiftがどういうステップで機械語を作ってるか知らないけど、配列操作の話題については、ループの最適化とか、並列処理への展開とか、するしないで激烈に性能差が出るのも、まあ、そんなものだと思うし。
どの辺が問題なのかよくわかんない。
0063名称未設定 (スプッッ Sdc2-OatX)
垢版 |
2017/06/29(木) 08:04:31.07ID:i/TjNHL0d
生成されるllvmコードを比較すりゃ良いだけ
0065名称未設定 (ニククエW c94c-HpRm)
垢版 |
2017/06/29(木) 12:13:37.96ID:6R9S/rjX0NIKU
release設定ではデフォルトでオプティマイズ有りだしドキュメントにもオプティマイズしろって書いてあるし
逆にオプティマイズしたらデバッガがトレースできなくなるからdevelopビルドはデフォではオプティマイズされてない。
だからSwiftでreleaseするにはオプティマイズ有りきが前提でしょ
0069名称未設定 (ニククエ 2dd9-ddzC)
垢版 |
2017/06/29(木) 15:52:53.03ID:k3Vsu0VT0NIKU
>>68
>emit-llvm-ir
ir = intermidiate representationなのね

Web Assembliesにllvmのコードが使われるって聞きました。
なんの事かよく知らんですけど、ブラウザで3Dゲームできるんだってねぇ。
0073名称未設定 (ワッチョイ 2dd9-ddzC)
垢版 |
2017/06/30(金) 16:30:38.81ID:uEaqeql60
>>72
情報処理試験、Java選択してラッキーで合格した。
危なかった。
0079名称未設定 (ワッチョイ 6d89-QA6g)
垢版 |
2017/07/03(月) 19:56:16.13ID:Oe7cPjto0
Obj-C、ワンポイント・レッスン

メソッド定義
(戻値)Keyword1:(型)arg1 Keyword2:(型)arg2 Keyword3:(型)arg3
メソッド呼出
[レシーバー Keyword1:arg1 Keyword2:arg2]
0080名称未設定 (ワッチョイ 6d89-QA6g)
垢版 |
2017/07/03(月) 20:03:10.18ID:Oe7cPjto0
Obj-Cワンポイント
クラスの定義
@interface MyClass: NSObject {
NSString* message;
}
-(void)setMessage:(NSString*) str;
-(NSString*)message;
-(void)printMessage;
@end
クラスの実装
@implementation MyClass
-(void)setMessage:(NSString*) str {
message = str;
}
-(NSString*)message {
return message;
}
-(void)printMessage {
NSLog(@“%@“, message);
}
@end
0081名称未設定 (ワッチョイ 6d89-QA6g)
垢版 |
2017/07/03(月) 20:14:27.49ID:Oe7cPjto0
Obj-Cワンポイント
インスタンス変数
@interface MyClass: NSObject {
NSString* message; // インスタンス変数
}
// インスタンス変数のプロパティ化
@property NSString* message;
@end
プロパティの実装
@implementation MyClass
@synthesize message;
@end
0083名称未設定 (ワッチョイ 5d3e-ddzC)
垢版 |
2017/07/03(月) 20:25:55.43ID:OHa8N9Mz0
昔覚えた内容のまま勉強してなさそう
0084名称未設定 (ワッチョイ 6d89-QA6g)
垢版 |
2017/07/03(月) 21:11:40.36ID:Oe7cPjto0
>>82
じゃぁ、Modern Objective-Cを教えて!
0085名称未設定 (ワッチョイ 6d89-QA6g)
垢版 |
2017/07/03(月) 21:16:53.75ID:Oe7cPjto0
Adopting Modern Objective-C
こんなん、見つけた。
0087名称未設定 (ワッチョイ 62df-8IVh)
垢版 |
2017/07/03(月) 21:24:06.77ID:Ws9FB70U0
#import <FrameWork/lib.h>
@interface MyClass : SuperClass
@property NSString *message;
- (void)printMessage;
@end

#import “MyClass.h”
@implementation MyClass
- (void)printMessage
{
NSLog(@“%@“, _message);
}
@end
0088名称未設定 (ワッチョイ 2dd9-ddzC)
垢版 |
2017/07/04(火) 08:46:53.91ID:SYB/170I0
>>87

@synthesize message;
って不要なのか?

それから、_messageってインスタンス変数が宣言されてない様だが、
@propertyで暗黙的に宣言されるって事か?
0092名称未設定 (ワッチョイ 2dd9-ddzC)
垢版 |
2017/07/04(火) 09:18:17.07ID:SYB/170I0
>>87
>@property NSString *message;

@property (copy)NSString *message;
って書きかえろ!とwarningが出た。

これがModern Objective-Cなのか?
0094名称未設定 (ワッチョイW 09ef-HpRm)
垢版 |
2017/07/04(火) 20:33:53.81ID:OZ38R0xE0
新概念!が出るたびに言語仕様に直接組み込んでは
後で仕様グダグダになる【モダン】より
なんでも「クラスの仕様です」で済ますObj-Cの方が
実はスマートなんじゃないかとずっと
0097名称未設定 (ワッチョイ 82d9-rlqC)
垢版 |
2017/07/04(火) 22:55:14.38ID:yMyy0KAw0
Fast Enumだの@synthesisだのドット記法だの@リテラルだのBlocksだのinstancetypeだの...
ObjCほど後から後から醜いツギハギだらけの言語も無いと思うがね
0101名称未設定 (ササクッテロラ Spcb-yr7v)
垢版 |
2017/07/06(木) 08:24:03.45ID:wwtqdPx9p
>>97
その都度、新概念!素晴らしい!って絶賛続けた信者はスゴイ
Swiftも新言語!素晴らしい!って受け入れてくれればこうはならなかったろうに
0106名称未設定 (ワッチョイ c73e-29Ea)
垢版 |
2017/07/24(月) 13:42:45.73ID:0gmw+sp20
C++のfriend相当とか、Objective-Cのprotected相当のアクセス指定が欲しいな…
0108名称未設定 (ワッチョイ 4fd9-C+ox)
垢版 |
2017/08/02(水) 10:03:45.80ID:U0+1Pe9L0
>>107
Deployment Targetを10.6にしてやれば良いんじゃない?
そすれば、Mavericksどころかその前までOKかも。
0111名称未設定 (ワッチョイ 9789-xbpo)
垢版 |
2017/08/14(月) 19:01:32.69ID:IYYDr/y20
>>110
Apple IDを2つ作るって事?
Developer用Apple IDと、non-Developer用Apple ID2つ作ってる人は多いのでは?
0113名称未設定 (ワッチョイ 733e-MmNF)
垢版 |
2017/09/01(金) 22:58:50.70ID:AsewW5Hc0
可変個の引数から別の可変個引数に、可変個扱いのまま渡す方法ってありますか?

func f(_ args: Any...) {
  sub(args) //これだと引数1個扱い
}
func sub(_ args: Any...) {
  
}
0114名称未設定 (ワッチョイ 733e-MmNF)
垢版 |
2017/09/01(金) 23:18:07.75ID:AsewW5Hc0
補足
Array版を作るしかない?

func f(_ args: Any...) {
  sub(args)
}
func sub(_ args: Any...) {
  sub(args)
}
func sub(_ args: [Any]) {
  
}
0116名称未設定 (ワッチョイ 733e-MmNF)
垢版 |
2017/09/02(土) 06:14:40.94ID:OjeSc+FO0
>>115
ありがとうございます。
Cのva_list用で、可変個を可変個で、ってものではなさそうですね。
0117名称未設定 (ワッチョイ 9163-b06s)
垢版 |
2017/11/16(木) 19:00:05.10ID:aijA5I6o0
UIApplication.shared.isNetworkActivityIndicatorVisibleはiPhone Xでは表示されないんかな?
0118名称未設定 (ワッチョイ bd3e-b06s)
垢版 |
2017/11/16(木) 23:42:02.51ID:34jOvPxv0
表示されないっぽい
代替表示用してくれても良さそうなものを…
0119名称未設定 (ワッチョイ bd3e-b06s)
垢版 |
2017/11/16(木) 23:42:52.24ID:34jOvPxv0
用して→用意して
0120名称未設定 (ワッチョイ 07d1-5Bhd)
垢版 |
2017/11/25(土) 22:29:47.69ID:IlS9zeHP0
Macの市販アプリってGUIの表示がアプリ毎に違ってるけど
あれってMacの標準GUIの見た目だけカスタマイズしてるの?
それともGUIの仕組み自体を自前でプログラムで作ってるの?
0121名称未設定 (ワッチョイW 5fcf-YPpG)
垢版 |
2017/11/26(日) 20:24:01.52ID:ybDI8cNy0
swiftでかいてるならだいたいカスタマイズ
unityとかなら全部てづくりかも
0126 【中吉】 【84円】 (ワッチョイ 6f3e-76Te)
垢版 |
2018/01/01(月) 13:25:54.42ID:nJ/vr14C0
言語仕様という点で日本語書籍でこれより詳解なのある?
0134名称未設定 (ワッチョイ bbd9-H65A)
垢版 |
2018/01/05(金) 15:26:35.72ID:9i83wet40
Swift4 変更点

で、検索したら満足できる記事がヒット
0135名称未設定 (ワントンキン MMa3-ur/e)
垢版 |
2018/01/18(木) 10:05:10.01ID:F5hIKVS5M
iPhoneアプリの開発者離れが起きている。

アプリ提出の審査が理不尽で不公平になってしまって、iPhoneアプリの開発者離れが起きている。
アンドロイドにはKotlinが出てきて開発者が増えている。

Guideline 4.2 - Design - Minimum Functionality

アップルのGuideline 4.2の連発で簡単なアプリはもう提出しても審査には通らない。まだアンドロイドの方が通る。
簡単でなく多機能なアプリでも4.2を連発してくる。もはや作為的やっているとしか言いようがない。

開発者は開発情報のみなもとだった。それを閉め出してからiosの勢いがなくなった。
今からiphoneアプリやってもまず4.2で通らない。審査で落とされる。簡単な機能だけのアプリはまずリジェクトされる。
ちなみに複雑なアプリでも同じようなことが起きている。Rssリーダーのようなアプリでも機能が簡単すぎるといわれリジェクトされている。
アップルは信用できない。これは確か。ころころ方針を変える。昨日まで審査に通ったアプリが、今日から通らなくなるというのが普通にある。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0140名称未設定 (ワッチョイ 2587-1pyd)
垢版 |
2018/01/19(金) 23:34:06.49ID:lHaNd0KF0
市場の影響やら色々あってやはりクロスプラットフォームが検討される

そこそこのアプリならCordova(TypeScript)、ゲームならUnity(C#)
Xamarin(C#)、Multi-OS Engine(Java / Kotlin)、Kotlin/Nativeとかもあって
Swiftは立ち位置が辛くなりつつある
0141名称未設定 (ワッチョイ db00-TSwL)
垢版 |
2018/01/20(土) 00:25:28.94ID:L5ZieUsF0
GoogleがSwiftの開発者引き抜いてAndroidアプリもSwiftで開発出来るようにする
って噂があったけど、あれどうなったんだろうな

少し期待してるんだが
0143名称未設定 (ワッチョイ dd3e-SF9s)
垢版 |
2018/01/23(火) 22:56:39.03ID:P4MrcF+80
https://iphone-mania.jp/news-200890/
>「Swiftは、プログラミング言語がオタクっぽすぎるという認識をもとに作られた。
>学生の多くはプログラミング言語を見て、”これはできない”と思ってしまう」と、クックCEOは語りました。

>「誰でも使い方をすぐ覚えられる、Apple製品のようなプログラミング言語をデザインしたかった」と、
>クック氏はSwiftの敷居の低さを強調しました。

Swiftはそこまでじゃねえな。それならAppleScriptぐらいにしないと。
0144名称未設定 (ワッチョイ db00-TSwL)
垢版 |
2018/01/23(火) 23:39:33.33ID:JP5Z93fl0
Swiftはいい言語だと思うけど、やっぱこれからは小鳥が主流になるのかな?
Springも5になって対応して、Webもスマホも作れるし
0146名称未設定 (ワッチョイW 23ef-wAYJ)
垢版 |
2018/01/24(水) 01:14:11.51ID:Slc30zGK0
BASICの昔から初心者の最初の理解を阻害しているのが
「型」の存在だ。というのは真理ではあるのだけど
「そういうことはオブジェクトに命令とクラスを渡す形にして
普段はあまり気にしなくていいようにしよう」って言語の後継です!つって
「なんじゃかんじゃわからんものになんじゃかんじゃわからないことするんですよ!進歩してるでしょ?」
って言われてもなんじゃかんじゃわからないソースになるだけだよねコレ?というか…
0147名称未設定 (ワッチョイW d587-Ht0t)
垢版 |
2018/01/24(水) 03:55:36.56ID:93wJNeG50
結局型を意識しなきゃコードは書けないと思う。初めてのプログラミング言語がSwiftだった人達が型を意識しないでいいだとかその他の理由でもいいけど、Swiftを分かりやすいと感じているかどうかが気になる。
0148名称未設定 (ワッチョイ 75c5-ur/e)
垢版 |
2018/01/24(水) 06:13:02.40ID:i7+Qpdc30
型ってそんなにわかりにくいかねえ。$には文字列が入って%には整数が入るとか、
当時小学生だった自分にもわかりやすかったけどね。%と!と#の違いはともかく、$はぜんぜん違うものが入るからなぁ。
0155名称未設定 (ワッチョイ 2587-j+7R)
垢版 |
2018/01/24(水) 13:19:08.05ID:wE3p1EOU0
Swiftの型推論は初動から風呂敷を広げ過ぎた
双方向推論は含めるべきではなかった
右辺値からの推論のみにしておけば型推論に関するビルド時間はここまで掛からなかったはず
0156名称未設定 (ワッチョイ 2587-j+7R)
垢版 |
2018/01/24(水) 14:17:14.93ID:wE3p1EOU0
let a = b( c() ) { d in e(d) }.f().g()

単方向(右辺値から)だと
・c()の戻り値型c_typeを導出
・b(c_type, func_type)の候補が一つになることをチェック
・func_typeからdを導出
・e(d)戻り値型を導出してfunc_typeと型チェック
・b(..)の戻り値型からb_type.f()を導出
・同様にfの戻り値型からg, gからaが決定

双方向だと e(*)の候補一覧からb(c_type, e_type*).f()が成立するものまで探し始める
bの引数の型が決まってない段階で
その絞り込みのためにf、さらにはgまで先読みして推論し始める
時間が掛かるだけでなくオーバーロードやエクステンションが絡んで
Ambiguousエラー出したり
LazySequence.map(..) -> LazyMapSequence<..> でなく
Sequence.map(..) -> [T] の方に間違って確定したりする
0157名称未設定 (ワッチョイ 2587-j+7R)
垢版 |
2018/01/24(水) 14:18:00.81ID:wE3p1EOU0
Swift3で推論に問題あったケースが、知っている範囲ではSwift4で正常になったので
かなり改善されているようだけどビルド時間はさらに犠牲になってそう

コーディングの利便性のために双方向の推論に対応した結果
ビルド時間が掛かり過ぎて型を明示するようになる本末転倒
レスを投稿する


ニューススポーツなんでも実況