トップページ⇒tech
1002コメント350KB

Swift part8 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (アウアウ Saaf-caug)2016/05/13(金) 23:30:06.87ID:MRCJQvHca
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift 3
http://potato.2ch.net/test/read.cgi/mac/1408762479/

[SDK]iPhoneアプリ開発初心者質問箱45[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1447650023/

Xcode part13 [転載禁止]c2ch.net
http://potato.2ch.net/test/read.cgi/mac/1424907278/

Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/

前スレ
Swift part7
http://echo.2ch.net/test/read.cgi/tech/1458491528/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0083デフォルトの名無しさん (アウアウ Sa76-2WQj)2016/06/02(木) 21:40:53.13ID:tHwJhWU8a
いや別に名前は同じでいいだろ
objectという引数をobjectというローカル変数へアンラップしてるってことだし
まぁ、可読性という意味ではあれだが
objectは下の方でちゃんと使われてるだろ
まぁ、頑張れ、ふくやましんご君
0084デフォルトの名無しさん (ワッチョイ 9e93-4qA/)2016/06/02(木) 21:59:29.18ID:xqPUilla0
object使われてましたねf^_^;
見落としでしたが、時々オプショナルバインディングで警告が出るので質問しました。
返答していただきありがとうございました
あとふくやましんごさんは赤の他人ですので
0085デフォルトの名無しさん (ワッチョイ 213c-qC5Z)2016/06/02(木) 22:16:03.42ID:O50w6Y0Q0
ああ本当だ!後で使われてるね。じゃあもしguardで書くなら
guard let _object = object else {
return
}
こっちだわ。
ちなみにこの_objectも後ろで
_object.removeObserver(self, forKeyPath: "state")
書くまで注意される。理由は>>80

てか本人だったんか、、何かごめんな。
0086デフォルトの名無しさん (ワッチョイ 213c-qC5Z)2016/06/02(木) 22:17:39.98ID:O50w6Y0Q0
>>84
やっぱり他人やったんかい!
0087デフォルトの名無しさん (ワッチョイ 213c-ChPp)2016/06/02(木) 23:14:42.95ID:dR7AiF6z0
おいおいここにはSwift初心者しかいないのか?

case .Ended, .Failed, .Cancelled where object != nil :
self.navigationItem.title = "Not committed"
object.removeObserver(self, forKeyPath: "state")

これでええやろ、guardすら必要ない
0088デフォルトの名無しさん (アウアウ Sa76-2WQj)2016/06/03(金) 00:23:22.47ID:VvE0bkkHa
厳密に条件を揃えるならその上のcase文にも必要になるけどな
0089デフォルトの名無しさん (ササクッテロ Sp89-ud2d)2016/06/03(金) 01:04:51.42ID:TXwUryARp
>>87
swift玄人様チーッス

betaから使っててもバズワードな言語仕様変更についてく気にならんよなぁ
guardの方がスマートに見える、流行りの書き方よりコードの一貫性を優先したい
0090デフォルトの名無しさん (ワッチョイ 213c-ChPp)2016/06/03(金) 01:07:30.72ID:9r6PyDlh0
トーシロだな
明示的にremoveObserverを呼ぶ必要があるケースを考えろ
0091デフォルトの名無しさん (ササクッテロ Sp89-ud2d)2016/06/03(金) 07:22:16.18ID:XjG17jmwp
元のコードみてないけど、これは必要なケースなの?
んで、guardじゃできないなら、 guardすら要らん、じゃなくそのコードはバグって指摘じゃないの?

変にむきになるとテクニックを披露したいだけの意識高い系の玄人様っぽいぞ
0092デフォルトの名無しさん (ワッチョイ 213c-2WQj)2016/06/03(金) 09:57:28.19ID:UqDa+ER+0
observeValueForKeyPathで、ofObject object: AnyObject?がnilになるケースって存在すんの?
ObjCのクラスを自動的にラッパーして直してないから、ポインタがオプショナルになってるだけでしょ?と思ってる。

自分なら、このケースの場合、if let object は外して↓だけで済ます。
object?.removeObserver(self, forKeyPath: "state")

>>82
外人とかのコード見てもアンラップするだけで、変数名変えるのはあんまり見かけないな。
0093デフォルトの名無しさん (ササクッテロ Sp89-4qA/)2016/06/03(金) 18:27:35.42ID:iR+TeNRGp
>>92
お前がSwiftプロだ
0094デフォルトの名無しさん (ササクッテロ Sp89-D6vv)2016/06/04(土) 15:34:17.98ID:cE2uZEbNp
namespace prefixが不要なのはいいけど、on Linuxでどうすりゃいいのっと思ったらSwift 3で正規投入されるPackage Managerが管理するのな
2.xでも一応機構はあるっぽいけど便利コマンドが追加されるだけで構成は同じだといいなぁ
誰かXcodeを使わないSwift開発のノウハウ持っててPackage管理してる人がいたら、互換性(見込み)について教えてくれぃ
0095デフォルトの名無しさん (ササクッテロ Sp89-D6vv)2016/06/04(土) 20:10:44.84ID:ets/dnaap
スマン、嘘言った気がする
2.xにon Linuxでも扱えるnamespaceはないかもしれん
誰かエロい人教えて、、、
0096デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)2016/06/08(水) 17:06:31.54ID:QDb2Bi8hM
配列をindexを3の倍数を除いて処理したいです。

for item in array {
// 処理
}

このスタイルで書きたいのですが、いい案ありますでしょうか?
0097デフォルトの名無しさん (アウアウ Sa76-rI5i)2016/06/08(水) 17:12:21.98ID:FiJoHGXCa
世界のナベアツ来てんね
0098デフォルトの名無しさん (ブーイモ MMb8-ud2d)2016/06/08(水) 17:43:25.79ID:IzbVLKR1M
>>96
enumerateを使う。
filter使うべきって人もいるかもしれない。
0099デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)2016/06/08(水) 17:46:06.21ID:QDb2Bi8hM
>>98
ありがとうございます。
考えてみます!

世界のナベアツだったら3の倍数で処理するだろw
0100デフォルトの名無しさん (ワッチョイ 213c-1mS6)2016/06/08(水) 18:51:27.84ID:HG8HbZIy0
for (index, item) in array.enumerate() where index / 3 > 0 {
かな?
0101デフォルトの名無しさん (オイコラミネオ MMb4-4qA/)2016/06/08(水) 18:52:30.23ID:QDb2Bi8hM
綺麗ですね!
参考になります
0102デフォルトの名無しさん (ワッチョイ e0c9-rI5i)2016/06/08(水) 19:02:44.73ID:4PrKHMPD0
>>100
>index / 3 > 0

なんでやねん
0103デフォルトの名無しさん (ワッチョイ 213c-1mS6)2016/06/08(水) 19:56:11.04ID:HG8HbZIy0
>>102
あれ違った?ボケてるかも
0104デフォルトの名無しさん (ワッチョイ 213c-1mS6)2016/06/08(水) 19:57:46.26ID:HG8HbZIy0
あ、index % 3 か
0105デフォルトの名無しさん (アウアウ Saff-2+vS)2016/06/10(金) 20:50:53.96ID:dDF5pFSwa
Swift 3のABI安定化が見送りへ
https://www.infoq.com/jp/news/2016/06/swift-3-no-stable-abi
0106デフォルトの名無しさん (ワッチョイ 8b3c-1atY)2016/06/10(金) 21:34:49.53ID:Icj8uFk90
>>105
納期に間に合わないなら仕方ないよねぇ。
さすがに後々問題になる可能性があるなら時間かけてでも検討、排除してほしいわ。
0107デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/10(金) 21:39:16.58ID:ZdUNqcUFp
> Objective CのABIが,おもにスケジュール上のプレッシャによって
ワロタ

swiftの中ですらABI安定してないのに、objcまで頑張ろうとしたら、そりゃ無理だわw
0108デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/10(金) 22:28:35.24ID:Ibo6Xp9La
もうobjcの方は頑張らないと思うけど
0109デフォルトの名無しさん (ワッチョイ eb7b-1atY)2016/06/10(金) 23:10:00.51ID:xyNxE4XD0
https://ja.wikipedia.org/wiki/Application_Binary_Interface

APIが変わってもABIは互換性は維持するって可能なものなんだ。
APIとABIって一対一対応なのかと
0110デフォルトの名無しさん (アウアウ Sa97-oU5x)2016/06/11(土) 01:55:06.60ID:QumDJQ98a
swiftはオワコン
時代はC#
WWDC二次会が楽しみだわ
0111デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/11(土) 02:06:01.12ID:XA6DLEjFa
C#って遅いじゃん
クソ重い.NET無いと動かねぇーし
0112デフォルトの名無しさん (ワッチョイ ef3c-jNGR)2016/06/11(土) 03:04:26.27ID:HBWP+BM70
>>111
え!?w
0113デフォルトの名無しさん (ワッチョイ 0742-jNGR)2016/06/11(土) 03:38:53.11ID:+qdbIGEA0
>>109
ABIって例えば関数呼び出す時のレジスタどうするかとかスタックどうするかとかいった話だろ。
普通はAPI関係ない。
0114デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/11(土) 07:44:10.16ID:ienu9sBbp
>>110, >>112はXamarinステマ厨だからほっとくとしてだ、、、

>>111
処理性能の足を引っ張ってる小さな(笑)ランタイムがないと動かないSwiftディスってんじゃねーよwww
0115デフォルトの名無しさん (ワッチョイ 8b3c-1atY)2016/06/11(土) 10:06:59.69ID:FWlFwO2K0
>>110
iOSアプリ開発すんのにUnityとかいちいち起動してらんねーんだよ。
XcodeでC#使えるようになったら考えてもいい。
つーか、別に言語なんて糞じゃなけりゃなんでもいいわ。

今考えるとSwift1.x系はそこそこ糞だったな。
0116デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/11(土) 10:35:44.87ID:iL4iXZRCa
C#はJavaと同じぐらい糞
参照カウント式メモリ管理に慣れた今ガベコレとか耐えられない
0117デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/11(土) 11:47:20.38ID:K3zUElr6p
そんなプログラミング能力の低さを大声で叫んでどうしたいんだよ
言語、ランタイムに合わせて使いこなすか、使えないなら近寄らないべきだろ
0118デフォルトの名無しさん (スプー Sdcf-jNGR)2016/06/11(土) 11:51:07.38ID:BuQwEvTrd
>>117
ガベコレのほうがよっぽど初心者向け仕様だろ
0119デフォルトの名無しさん (ワッチョイ 233c-VqNH)2016/06/11(土) 16:33:32.90ID:lGk3iJgb0
心配しなくても言語スレに来るような奴ならちょっとやれば慣れるし耐えられるって
0120デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/11(土) 17:12:30.02ID:tY1WxmQFa
公式の開発環境があるのにわざわざサードパーティの環境使うには
それなりのメリットが必要だわな
iOSオンリーな俺にわざわざXamarinを使うメリットはないのだよ
0121デフォルトの名無しさん (ササクッテロ Spd7-2ckR)2016/06/11(土) 22:58:00.28ID:g/rGqFOCp
>>118
参照カウント, GCのいずれかしか使いこなせない => 初心者
いずれも適当に使える => 中級者
alloc, free以外許す気がない => 上級者

>>115
2.xもクソだし、3.xもクソだと思うよ
3.xのビルドツール使ってみてるけど、Package ManagerがCocoaPodsやCarthageと互換性なくて笑う
今の所は .xcodeproj や Info.plist とも連携する雰囲気がないし、どうなるのさこれ・・・
0122デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/11(土) 23:07:50.31ID:eRqP7x9ga
GCに使いこなすも糞もないだろw
CoacoaPodsもarthageもAppleからしてみればサードパーティが勝手に提供してるツールでそこの互換性を気にする義理はないわな
0123デフォルトの名無しさん (ワッチョイ 8b3c-7xHu)2016/06/12(日) 00:11:53.55ID:S4cPSCPd0
>>121
使えるものを使わずalloc, freeに拘るのはただの老害だと思うけど、
自前でメモリ管理できないプログラマは二流だし、
自前でメモリ管理することを許さないプログラミング言語は三流だわな

PackageManagerは将来的にはXcodeに組み込まれてNuGetみたいにゴリ押しされるから大丈夫
0124デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/12(日) 01:23:45.61ID:dmPmHezlp
言語とランタイムとプログラマと混ざってて意味不明
要はARCマンセーなんだろうな
0125デフォルトの名無しさん (アウアウ Sa3f-zoFs)2016/06/14(火) 00:54:41.75ID:8yjejgOaa
SwiftみたいなC言語に由来しない言語が流行ると、言語乱世の世が来てしまう
0126デフォルトの名無しさん (ササクッテロ Spd7-zoFs)2016/06/14(火) 01:22:51.47ID:7FWxp3bzp
Swiftなんかがオープンソースで流行ったら無法地帯になるな
Swift++とか来年すぐに出てくるぞ
0127デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/14(火) 01:37:55.95ID:TmMOv/QAa
その次はSwift#な
0128デフォルトの名無しさん (アウアウ Sa3f-zoFs)2016/06/14(火) 01:47:48.70ID:8yjejgOaa
その次はSwiftyとかって言うScript
0129デフォルトの名無しさん (ワッチョイ a33c-AHtr)2016/06/14(火) 03:09:06.48ID:tPi5OMXi0
だったらSwift on Railsのがいい
0130デフォルトの名無しさん (ワッチョイ 3b66-oU5x)2016/06/14(火) 05:04:52.84ID:9VHKttIj0
iPad(iOS)にswift playgroundきたな。
プログラムの勉強にはいいんだがswiftの方が
学んで後々使えるぐらい仕様安定するのか…
0131デフォルトの名無しさん (ワッチョイ ef93-oU5x)2016/06/14(火) 05:18:15.59ID:F+5+ukCP0
iPad Proが欲しくなってきた
0132デフォルトの名無しさん (ワッチョイ 9b8b-jNGR)2016/06/14(火) 07:54:06.23ID:o0HgXHCE0
大丈夫だよ
そんな心配しなくてもSwiftはすぐ消えるから
0133デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/14(火) 08:22:29.77ID:GA68fGvrp
>>126
随分前からswiftppは出てる
0134デフォルトの名無しさん (アウアウ Sa3f-zoFs)2016/06/15(水) 01:58:24.67ID:HOkjGBqoa
今Swift化してる会社は、分かっていないところばかりです
0135デフォルトの名無しさん (ワッチョイ a33c-AHtr)2016/06/15(水) 02:04:03.71ID:JQG8N//+0
なにを?
0136デフォルトの名無しさん (ワッチョイ 57c9-1atY)2016/06/15(水) 03:04:06.18ID:AKfbMiRN0
WWDCのセッションは完全にSwift一色だな
0137デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/15(水) 08:04:43.58ID:t8WJCWqDp
去年がObjCサンプルコード大量だったらしいからなw
しかし、逆ブレが強すぎてSwift風味に少食気味になるわ
0138デフォルトの名無しさん (ササクッテロ Spd7-FUCW)2016/06/15(水) 13:30:26.42ID:t8WJCWqDp
Swift3でNSプレフィクスが要らなくなるって
NSプレフィクスをコンパイラが付けるから要らなくなるってことかと思ったら
Foundation.swiftとかでNSプレフィクスなしの構造体が再定義されてるのな

道理でNSプレフィクスが要るものと、要らないものと混在するわけだ
< NSプレフィクスを全撤去したらビルドエラーが出た
0139デフォルトの名無しさん (アウアウ Sa3f-1atY)2016/06/15(水) 14:02:58.21ID:wNwSdVKma
どんどんジョブズの遺産が消されていくな
0140デフォルトの名無しさん (ササクッテロ Spd7-jNGR)2016/06/15(水) 14:24:43.12ID:t8WJCWqDp
聖別して聖遺物として崇めないとな

取り合えず、構造体が単なるラッパーなら性能がまた落ちるからやめて欲しい
NSつけたらエラー/ワーニング出るけど
0141デフォルトの名無しさん (ワッチョイ fc42-o3Bz)2016/06/16(木) 00:24:12.15ID:b32tR6DT0
NS プレフィクス削除とか Objective-C 冷遇とか
NeXT にコンプレックスがある奴が引っ掻き回しているとしか思えない。
0142デフォルトの名無しさん (ワッチョイ d98b-qS7w)2016/06/16(木) 00:55:04.77ID:N2kyoOQs0
>>138
くそだわ
最近のアップルはホントに小手先の変わった感で誤魔化すことしか考えてない
0143デフォルトの名無しさん (ワッチョイ fc42-ntlg)2016/06/16(木) 01:11:41.34ID:5OteNi9t0
何気に文字列処理が普通の言語っぽくできるようになってきたね
まだまだ不便だけど
0144デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)2016/06/16(木) 01:12:59.62ID:MpHMwtX90
小手先で誤魔化しとるのはmutable型とimmutable型で分かれてたり、プロパティでcopy属性つけたりせんとあかんObjCの方やで
Swift先生が値型セマンティクスのあるべき姿に正してくれたんやで
0145デフォルトの名無しさん (ワッチョイ 8b3c-77//)2016/06/16(木) 01:14:19.64ID:lHelW+jt0
能無しが文句ばかり言ってる
0146デフォルトの名無しさん (ワッチョイ 8317-ntlg)2016/06/16(木) 01:38:25.49ID:a4ODjedr0
>>144
そういやObjective-CだとimmutableはスレッドセーフでmutableはスレッドアンセーフだけどSwiftはそのへんどうなってるの?
0147デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/16(木) 01:49:47.87ID:xvtNBgrWp
>>141
obj-cもバックポートしてジェネリクスやnilable追加してる
冷遇されてないやん
0148デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/16(木) 02:03:18.81ID:h5j7M7Fta
ジョブズの遺産であるObj-Cも近いうちに淘汰されるだろうな
0149デフォルトの名無しさん (ササクッテロ Sp4d-MYuK)2016/06/16(木) 08:27:02.43ID:Rn5Y9zAqp
もうApple嫌いになった
0150デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/16(木) 08:27:55.28ID:qIs25kXxp
NSがつかないのは値型ルールなら分かるんだが、
DateFormatterはclassだし、一貫性がないんだが
0151デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/16(木) 08:31:59.04ID:xvtNBgrWp
一見、一貫性がないように見えるだけで法則はあるはずだから、、、
一見で分からないと実用が辛いと切実に思いはする
0152デフォルトの名無しさん (アウアウ Sa3e-MYuK)2016/06/16(木) 08:32:39.70ID:YJ4WCJk5a
SwiftよりもObj-C改良してくれよ〜
クソアプリ作り直すの面倒なんだが
0153デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/16(木) 08:36:51.43ID:qIs25kXxp
NSがない値型
NSがない参照型
NSが残ったままの一部Mutable参照型
NSが残ったままでMutableはないけどSwiftに合わせてMutableに変更した型

の4パターンない?これ法則性なんてないぞ
0154デフォルトの名無しさん (アウアウ Sa3e-MYuK)2016/06/16(木) 08:46:08.83ID:YJ4WCJk5a
SwiftOS発表されなかったな
どうせウンコなのだろうけど
0155デフォルトの名無しさん (ササクッテロ Sp4d-MYuK)2016/06/16(木) 09:35:08.90ID:Rn5Y9zAqp
Swift使うとプログラムが良くなるのか?
ならないならObCで十分な気が
0156デフォルトの名無しさん (ワッチョイ 353c-9XTm)2016/06/16(木) 10:00:39.78ID:hWAFG/l70
好きな方を使えばいい
0157デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/16(木) 10:46:45.34ID:T+6u6n/Ha
デリゲートゾーンの痒みにはSwiftが効く
0158デフォルトの名無しさん (ササクッテロ Sp4d-MYuK)2016/06/16(木) 10:58:05.80ID:Rn5Y9zAqp
Swiftもなんか違うんだよな〜
もっとなんつーか、nullとかどうでもよくて、
テーブル配置するとweb api呼ぶロジックまでサクッと作ってくれたり、セル中のイメージについても非同期でふあっと表示してくれたり、プログラムレスみたいなところをAppleには期待しているんだか・・
0159デフォルトの名無しさん (ワッチョイ 21c9-IAjB)2016/06/16(木) 11:56:15.03ID:hLUHI1zp0
>>138-142 >>141
同意
Node.js 界隈の流れと似てるんだよな
0160デフォルトの名無しさん (ササクッテロ Sp4d-7oQw)2016/06/16(木) 12:13:45.98ID:z0RRzkKrp
>>153
問題を分解して
・NSプレフィクスなしのstructとclassが混在してる
=> メンバが値型だけのものと参照型もあるものがあるから仕方ない
・Mutableがあるものとないものがある
=> どの型(struct/class)がそれに当たるか分からんけどObjCでもMutableクラスがあったりなかったりするんじゃね?

マトリックスで4パターン在りそうではあるな
もう面倒だから全てclassにしてMutable有無はObjCにMutableを全てバックポートして1パターンにすればいいな!
0161デフォルトの名無しさん (ワッチョイ 353c-ntlg)2016/06/16(木) 21:28:18.49ID:sy3QoUPQ0
値型とクラスはXcode上で別の色にして欲しい
0162デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/16(木) 23:04:56.13ID:WBjdL78K0
>>161
型名にプリフィクスつければいいんでない?
俺はクラスはCHogeみたいにしてる
これだとわかりやすい
0163デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/16(木) 23:29:09.38ID:XHHNTNoma
値型か参照型かってそこまで気になるか?
0164デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/17(金) 01:37:43.94ID:5FRm5cqIp
Cプリフィクスとかダサすぎ
0165デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/17(金) 05:01:47.43ID:O3eIFVC90
>>163
・参照型はヒープからメモリが動的確保される
 →ちゃんとしたメモリ管理を意識するには区別は必須
・参照型は複数の場所からメモリが共有される
 →確保されたメモリの寿命が想定しにくい
  →意図しないタイミングでメモリ確保や解放が走る危険がある
   →ゲームにおいてはFPSが安定しない原因となる
    →できるだけ使わないようにする工夫が必要(区別が必要)
  →再現や原因特定が難しいバグの温床になる(解放後アクセスなど)
   →できるだけ使わないようにする工夫が必要(区別が必要)
・値型はコピーコストが大きい
 →値型できるだけ代入や関数渡しを行わないようにする必要がある
  →値型と参照型を区別する必要がある

プロのエンジニアほど値型と参照型を区別し実行効率のいいプログラムを書く
「本物の」エンジニアが
(値型と参照型がごっちゃの)C#やSwift、Javaを使わず
(値型と参照型が区別しやすい)C++を使うのはそれが理由
0166デフォルトの名無しさん (ワッチョイ 0166-ntlg)2016/06/17(金) 05:35:01.90ID:Yb0Hf3EI0
プログラム言語の細かいことわからないなら"わからない"と言いなさいよ?>>165
0167デフォルトの名無しさん (ブーイモ MM01-qS7w)2016/06/17(金) 07:59:29.55ID:l4CEosSxM
参照or値とは少し異なるけど、本来c++みたいにインスタンス化時にどちらかか選べるべき(ヒープorスタック)。
c#をまねたんだろうけど、c#使ってみて使いにくいと思わなかったんだろうか。。
0168デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/17(金) 09:09:46.50ID:1pirHGETp
値型/参照型、スタック/ヒープを@修飾の後付けで細かく調整した結果がobjcの混沌とした言語仕様で
逆ブレしてできる限り修飾なくしてタイプに合わせて固定するようにしたんだろう

retain, releaseうぜー => ARCにしよう
@修飾うぜー => タイプ毎に固定しよう
思想は分からなくもない
0169デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/17(金) 09:46:49.62ID:/Brx6kYia
>>165
参照カウント式のメモリ管理なんだからメモリ確保や解放のタイミングはっきりしてるだろ。ガベコレと混同してないか?
意図しないタイミングで解放されると思っているならそれは自分が意識できていない証拠。
それと値型が常にコピーされるわけじゃないだろ。コピーオンライトだから変更が生じた時に初めてコピーされる。変更しないならコストはほとんどかからない。
なぜstructの変更メソッドにmutatingを強制されると思ってるんだ?
0170デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)2016/06/17(金) 11:03:24.20ID:JJkz2RIU0
「本物の」エンジニアかっけ〜www
0171デフォルトの名無しさん (スプー Sdf8-qS7w)2016/06/17(金) 11:12:29.81ID:IJmnPBGJd
本物じゃないエンジニアとは一体…。
0172デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/17(金) 12:34:52.24ID:lpE23cnBp
初心者なんだけど例えばボタンのサブクラス作って使いまわせば色とか形とか全部変わりますよね?
で、それぞれのボタンテキストを個々に違うものにするにはどうすればいいんですか?
やっぱ個別に
var btn1 = btn()
var btn2 = btn()
ってして別物にするしかないんですか?
インスタンス化してから個別に変更可能な変数とかありませんか?
0173デフォルトの名無しさん (ワッチョイ 0166-ntlg)2016/06/17(金) 13:29:49.01ID:Yb0Hf3EI0
釣りかと思った。と最初に書いておこう。
インスタンスはそれぞれ情報を持ってるから単純に
それぞれのインスタンスのプロパティ(変数)に
インスタンス作成後にドット構文で値をセットするだけ。
0174デフォルトの名無しさん (ワッチョイ fc42-ntlg)2016/06/17(金) 16:09:20.95ID:G7TV3QK90
>>165
参照型と値型の区別はスタックやヒープとは無関係
0175デフォルトの名無しさん (ササクッテロ Sp4d-7oQw)2016/06/17(金) 16:11:53.54ID:1pirHGETp
@objc public class Drawer: NSObject {
public func draw(string: String) {
}
public func draw(string: String, point: CGPoint) {
}
}

@objc public class Drawer2: NSObject {
public func drawString(_ string: String) {
}
public func drawString(_ string: String, point: CGPoint) {
}
}

Appleの教えに従順な子たちに聞きたいんだが
第一変数の前置キーワードの有無はどっちがモダンなの?
0176デフォルトの名無しさん (アウアウ Sac5-9XTm)2016/06/17(金) 18:01:14.67ID:Gr/Wtxhwa
>>175
3.0からは上になるらしい
0177デフォルトの名無しさん (ワッチョイ 353c-ntlg)2016/06/17(金) 18:54:24.96ID:6bQikBHY0
>>173
あ、それは普通に
var btn1 =btn()
var btn2 =btn()
ってしてる場合ですよね?
そうじゃなくて
btn1 = btn2 =btn()
の状態でbtn()クラス内にインスタンス化した後に個別で設定できる変数が欲しいなと思ったんです。
何か変なこと言ってるかも知れませんが、、
0178デフォルトの名無しさん (ワッチョイ 8b45-o3Bz)2016/06/17(金) 19:09:07.05ID:abgNsJLe0
型プロパティで検索すればやりたいことができそう
0179デフォルトの名無しさん (JP 0Ha5-qS7w)2016/06/17(金) 19:14:37.99ID:EHxWLoiPH
>>177
構造体じゃだめ?
0180デフォルトの名無しさん (ワッチョイ d217-bSae)2016/06/17(金) 19:55:16.29ID:zGYbbhBh0
              【Win10】    こんな犯罪級OS薦めんなよwww   ↓   【スパイウェア】


この使用許諾契約書には書かれています
”最後にあなたのコンテンツを含む個人データ(例えばあなたの電子メールの内容や―プライベート通信やプライベートフォルダ内のファイル)にアクセスし―開示し保全します”
開示する ここ重要だよ
契約がなければ通常 高度な違法行為になりうることです それはあなたが自分の意思としてこの契約書に同意したのです
https://www.youtube.com/watch?v=ZBwEmgdqB1c



「1910」 副島隆彦 2016年6月16日

大阪市や大阪府のバスの運転手が年収1000万円は許せない、600万円まで落とすと。
なぜなら、普通の労働者たちが年収400万円でようやく働いているのに、何でバスの運転手が1000万円ももらえるんだと。

このものすごくすばらしい主張があった。
これを言われると日本の民主党や共産党は非常に困るんです。
が、先ほど言ったように、金持ちたちの財産を相続税で国家が奪い取る、これを正面から本気でやったらほんとに橋下はたたき潰されました。

労働組合を押さえつけるまでは安倍晋三たちも大好きだからよかったんだけど、
自分たち自民党体制の、金持ちと地主階級、経営者を大事にするという自民党の基本骨格があるわけです。
0181デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/17(金) 20:04:24.09ID:m2lL2O8z0
>>178
あそっか!クラス変数ってのがありましたね!
それかもしれません!検索してみます!!

>>179
UIViewのサブクラスなんですよ。
それに内容物がそれなりにあるので値型のコピーで増やすとメモリがもったいないなと思いまして。

そもそも元は
var btn1 =btn()
var btn2 =btn()
のやり方で普通に作って動かしてたんですがメモリを意識するようになり参照型の挙動について深く知りたくなりまして、、

上記のインスタンスの増やし方だとインスタンス変数はそれぞれ別領域に確保されてる気がするんですよね。
でも色や形、内部関数で使う変数など大半の情報は共通で良いので
btn1 = btn2 = btn()
のような挙動が好ましいです。
でも個別で設定したい変数もある。という感じです。
0182デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/17(金) 20:11:28.80ID:NB8H2ZOx0
>>181
class A {
static var val: UIColor
}

とかじゃダメなん?
てか、メモリなんか気にすんなよ、現行のiPhoneなら落ちねーよ。
■ このスレッドは過去ログ倉庫に格納されています