トップページ⇒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
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なら落ちねーよ。
0183デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/17(金) 20:17:50.16ID:m2lL2O8z0
Class stored properties not yet supported in classes; did you mean 'static'?

ってまだ使えないみたいですね、、
staticにするとどういった挙動になるんでしょうか?
0184デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)2016/06/17(金) 21:27:42.63ID:JJkz2RIU0
ササクッテロ Sp4d-ntlg
ワッチョイ 353c-o3Bz

本物のエンジニアさんマジかっけーw
0185デフォルトの名無しさん (ブーイモ MM39-qS7w)2016/06/17(金) 22:58:49.23ID:k+R4NuOAM
>>184
お前はもっと頑張れよ
0186デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/18(土) 00:43:15.51ID:SqXZp1CN0
>>183
自分の環境だと↓で動くけどな。staticはそのクラス内で同じ値を共有する指定子だ。詳しくは”swift static”でググれ。

func test() {
class Hoge {
static var str: String = "hoge"
}

let hoge1: Hoge = Hoge()
let hoge2: Hoge = Hoge()

print(hoge1.dynamicType.str) // "hoge"
print(hoge2.dynamicType.str) // "hoge"
print(Hoge.str) // "hoge"

Hoge.str = "huga"
print(Hoge.str) // huga

hoge1.dynamicType.str = "foo"
print(Hoge.str) // "foo"
print(hoge2.dynamicType.str) // "foo"
}
0187デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/18(土) 07:18:13.93ID:SSFYRUk+0
>>186
ありがとう!
助かりました!
0188デフォルトの名無しさん (ササクッテロ Sp4d-7oQw)2016/06/18(土) 12:39:22.87ID:LoVGXRyxp
>>176
thx
ObjCヘッダにした時に drawWithString:(NSString *) string じゃなく drawString:(NSString *)string になって欲しかったけど
beta や 1.x にはそんな変換ルールがあったはずだけどいつの間にか無くなってて、これも後者はダサいというApple様の教えっぽいな

突き抜けるとこうなるけど、@objcをつけてこれをやるのは流石にダメな気がしなくもない
@objc public class Drawer: NSObject {
public func draw(for string: String, at point: CGPoint = CGPoint.zero) {
}
}
0189デフォルトの名無しさん (ワッチョイ c693-ntlg)2016/06/18(土) 13:51:47.24ID:OLXU/OFf0
Stringをfor inで一文字ずつ取り出すのって廃止になったんか
0190デフォルトの名無しさん (ワッチョイ c693-ntlg)2016/06/18(土) 13:56:54.21ID:OLXU/OFf0
.charactersね
0191デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/18(土) 18:17:19.82ID:jDGY/iix0
最悪だわー
swift3ちょっと触ってみようと思ってbetaのXcodeでファイル開いたらXcode7でエラー出まくってるんですけどー
コンバートはキャンセルしたはずなのにー
最悪なんですけどー
0192デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/18(土) 18:28:38.44ID:iN6Inr/Dp
>>191
ざまぁwwww

>>189
その手のインターフェースは着々と削ってきてるなぁ
多段メソッド呼べばforで回せる型は取得出来るだろうよ、Qiitaに行ったらサンプルコードありそう
0193デフォルトの名無しさん (ワッチョイ 353c-4fuR)2016/06/19(日) 01:49:47.74ID:8IT6imBp0
そろそろSwift4をまともにするために我々もコミュニティにかかわっていくべきなのでは
0194デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/19(日) 01:51:48.82ID:YCHLwc/F0
>>191だけど症状違った
Xcode8-beta動かしたらXcode7がおかしくなるみたい
“Command /usr/bin/ditto failed with exit code 1”ってのが3つ出てる。
設定ファイル上書きされたっぽい

あーめんどいわー
0195デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/19(日) 02:01:59.66ID:YCHLwc/F0
あ、違った
Xcode8-betaでも同じエラー出てるわー
何だこれー、意味わかんねー
0196デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/19(日) 02:50:54.95ID:YCHLwc/F0
別名でプロジェクト作ったらエラー消えた
そういうことだったらしい
0197デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/19(日) 10:05:42.83ID:jiJ96XDsa
なんだそういうことか
0198デフォルトの名無しさん (ワッチョイ 5c42-qS7w)2016/06/19(日) 10:56:44.35ID:3v1ECtbO0
>>193
そうだな。
まずは2chリーダー機能を
0199デフォルトの名無しさん (ササクッテロ Sp4d-ntlg)2016/06/20(月) 12:20:16.46ID:uuasGfzYp
ストーリーボードやxib開くのが重過ぎる。
あれってxmlだからブラウザみたいなもんじゃないの?
毎回ブラウザ的なものを起動し直してるのかな?
0200デフォルトの名無しさん (アウアウ Sa3e-o3Bz)2016/06/20(月) 13:14:32.27ID:w3MDWnf1a
お前は一体何を言ってるんだ?
0201デフォルトの名無しさん (ワッチョイ 0d7b-o3Bz)2016/06/20(月) 15:19:11.56ID:8rKuoF4g0
>>199
単純にマシンパワー不足なのかも。
どのスペックで運用してるの
0202デフォルトの名無しさん (オイコラミネオ MM54-ntlg)2016/06/20(月) 18:39:29.83ID:KK4iLTF5M
Swift 3.0になってTable Viewが扱えなくなってしまった(´・_・`)
0203デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/20(月) 18:41:34.67ID:yi+M/Qao0
>>201
2011のMBP13インチで8Gメモリ
古いからPhotoshopとかでも10レイヤーくらいで重くなったりするんだけども
それでもストーリーボードに関してはファイル選択しちゃったら(別ファイルを選択するつもりで上を通り過ぎるだけでも)10秒くらいは白画面で操作受け付けなくなる
重さと機能が見合ってないっていうか何ていうか、不自然な重さなのである。
0204デフォルトの名無しさん (ワッチョイ 8317-ntlg)2016/06/20(月) 18:49:48.08ID:3xIqWxcV0
>>202
どういう事?
0205デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/20(月) 19:00:29.65ID:yi+M/Qao0
>>202
一応見たけどUITableViewは普通にあったね
前のtouchesBeganみたいにコンバートしきれない変更が多いのかな?
0206デフォルトの名無しさん (ワッチョイ c693-ntlg)2016/06/20(月) 19:50:10.70ID:A1bMd2Vm0
dataSourceとdelegate繋ぐとnserrorになっちゃう(´・_・`)

2.0では動いてたよ

自分の知識不足が原因だよ
0207デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/20(月) 19:56:53.29ID:iL87O4mO0
>>203
MacBook Pro (15-inch, Mid 2010) だけど、初期のストーリーボードならファイル選択時に若干もたついても、長くてせいぜい1,2秒程度だよ。
0208デフォルトの名無しさん (ワッチョイ 353c-nyB3)2016/06/20(月) 23:42:08.93ID:E8+QxyeU0
SSD買ってもらえないんじゃないの。
0209デフォルトの名無しさん (ワッチョイ 353c-o3Bz)2016/06/21(火) 09:42:50.30ID:zc7y1ZPP0
>>208
>>207だけど、システムはSSDにしてたわ。
HDDのままだとやばいんだろうか?
0210デフォルトの名無しさん (オイコラミネオ MM54-ntlg)2016/06/21(火) 18:11:49.82ID:/7mwTcxAM
UIViewControllerクラスのisKind(of:)プロパティ使えん

ラベルがないとか、つけるなとか、エラーがうるさいよ(´・_・`)
0211デフォルトの名無しさん (オイコラミネオ MM54-ntlg)2016/06/21(火) 18:12:36.90ID:/7mwTcxAM
メソッドだったね(´・_・`)
0212デフォルトの名無しさん (ササクッテロ Sp4d-qS7w)2016/06/21(火) 19:05:37.98ID:QnyxuFLwp
その感じだと前置キーワードが前置詞だけなのはobjcでも推奨されてんのか
聖遺物が犯されるとジョブス信者がファビョりそうだなぁ
0213デフォルトの名無しさん (ワッチョイ 50c9-o3Bz)2016/06/22(水) 20:03:00.10ID:GmEeJgO10
is じゃいかんの
0214デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/24(金) 15:39:30.61ID:D76kG+ZLM
>>213
それでよかった
0215デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/24(金) 15:40:37.07ID:D76kG+ZLM
>>206
いままで使っていたメソッドがUITableViewDataSourceプロトコルに移行しておったのが原因じゃった
0216デフォルトの名無しさん (ワッチョイ eb3c-CM8X)2016/06/28(火) 08:11:11.52ID:ZCbqkJp10
Swift 1の頃から関数とメソッドでラベルの規則がちげーのと、
メソッドの1個めだけ規則がちげーのがきめーと言い続けてきたが
ついに全部ラベルつきに統一されたか
俺には先見の妙があったな、ガハハ!
でもgetValue()とかどうすんだ
get(value) とかになんの?
0217デフォルトの名無しさん (ササクッテロ Spb7-gJJb)2016/06/28(火) 08:33:38.45ID:cmOfDhcRp
getValueとかバカじゃねーの、ガハハハ
0218デフォルトの名無しさん (ササクッテロ Spb7-Z7EN)2016/06/28(火) 09:17:13.52ID:jB07YuJvp
>>216
Value型ならなる
getStringはget()->String
引数名と型が一致してなければそのまま
0219デフォルトの名無しさん (ワッチョイ 97c9-CM8X)2016/06/28(火) 12:41:44.71ID:SzDvpUGs0
>>216
>先見の妙
0220デフォルトの名無しさん (オイコラミネオ MMef-iWcA)2016/06/28(火) 12:54:20.13ID:7+ajw/ORM
>>216
中興の祖
0221デフォルトの名無しさん (アウアウ Sa3f-CM8X)2016/06/28(火) 13:01:48.97ID:5TI3Z5IKa
>>216
漁夫の利
0222デフォルトの名無しさん (ササクッテロ Spb7-zCkP)2016/06/28(火) 13:08:45.58ID:cmOfDhcRp
>>221
それは違う

マジレスすると
var value {
return hoge
}
にしろというね

イマドキgetValueなんてメソッド定義するアホは逝ってよし
ObjCですらそんな文法は古臭い
0223デフォルトの名無しさん (アウアウ Sa3f-CM8X)2016/06/28(火) 13:21:34.28ID:5TI3Z5IKa
>>222
他山の石
0224デフォルトの名無しさん (ワッチョイ ef4e-DaWq)2016/06/28(火) 13:50:01.93ID:q+ED03Ko0
仏滅の政
0225デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/28(火) 17:49:18.46ID:bxuSRhA5M
iOS用のWatchKitの様なTaptic EngineのAPIってある?
0226デフォルトの名無しさん (ワッチョイ eb3c-CM8X)2016/06/28(火) 21:39:45.95ID:ZCbqkJp10
>>222
プロパティにするのはちょっと違うと思う
その例みたいにただhogeを返すだけならいいが
処理が重い場合はプロパティ感覚で気軽に
呼びだされちゃ困るからわざと関数にすることがある
var value : String {
  return m_hoge;
} // プロパティでok
func getValue() -> String {
  var hoge = "";
  // 重い処理でhogeをいじる…
  return hoge;
} // 重いので関数で!

get(_ value: Void) -> String にするのがいいのかな
0227デフォルトの名無しさん (ササクッテロ Spb7-zCkP)2016/06/28(火) 22:10:08.77ID:cmOfDhcRp
重いなら非同期のブロックで返せよ・・・
重いから云々で切り替えるって10年も前の意識だろ、イマドキその区分け基準はないわ

上でも挙げたけど@objcつけたら滑稽なI/Fになるからやめれ
Swiftだけで綺麗に見えてれば良いんだよwwwって意識高い系ならもうそれで良いけどさ
0228デフォルトの名無しさん (アウアウ Sa3f-CM8X)2016/06/28(火) 22:16:03.67ID:4sGhMYiSa
Swifterはメンバ変数にm_とかいう臭ぇプレフィックスはつけねーんだよ
0229デフォルトの名無しさん (ワッチョイ eb3c-jO4j)2016/06/29(水) 00:16:01.87ID:ebP7vD7n0
Swifterの意識の高いプレフィクス

_ プライベートを意味する
__ Apple様しか使わないことを意味する
___ Apple様の中でも上級Applerしか使ってはいけないことを意味する
0230デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/29(水) 16:49:57.04ID:+RWPkAMOM
プロトコルやデリゲートを追加する場合推奨される記述は
extension?クラスの横に,でプロトコルやデリゲートを追加?ケースバイケース?
0231デフォルトの名無しさん (アウアウ Sa3f-CM8X)2016/06/29(水) 16:54:38.15ID:2MzgcDxya
ケースバイケースバイケース
0232デフォルトの名無しさん (オイコラミネオ MMef-Z7EN)2016/06/29(水) 17:13:42.56ID:+RWPkAMOM
ありがと( ^ω^ )
0233デフォルトの名無しさん (ワッチョイ eb3c-CM8X)2016/06/29(水) 21:48:12.52ID:wGAYe3WS0
>>227
非同期で返すほどではないが何度も呼ばれるとまずい程度には遅い関数って、
結構あるんだよ。
配列や文字列を線形探索する関数とか。
// メンバとしてもつ配列の最大の値のインデックスを返す関数
func getMaxValueIndex() -> UInt {
 var index = -1 // -1ならNotFound
var max = 0
 for (i, value) in m_values {
  if value > max {
   index = i;
   max = value;
  }
  return index;
}
こんなのを var maxValueIndex なんてプロパティにして、
変数感覚で気軽に呼び出されたらまずいでしょ。
0234デフォルトの名無しさん (ササクッテロ Spb7-gJJb)2016/06/29(水) 22:07:32.64ID:mM18OEEyp
普通に考えたらArray.countの中の人と同じように
キャッシュするか、配列の変更時に事前計算だろ?
何が問題なんだろうね

>>229
実際、Foundation.swiftの実装でプレフィクスどうなってるか気になるな
極力アポー様の教えに従いたいので知りたいよ
0235デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/06/30(木) 00:56:02.59ID:MEE6GOQUa
ちんこ
0236デフォルトの名無しさん (ワッチョイ 9910-/PL2)2016/06/30(木) 03:27:22.89ID:msjqUaEK0
>>234
中身が変更されまくるものだったらキャッシュしてもしょうがないし、使用頻度を考えると変更時に事前計算するのは避けたい場合もあると思うけど。
だから何でもかんでもプロパティにするのはよろしくないとは思う。

ただ、プロパティとgetなんちゃらというメソッドで計算コストが違うという共通認識を皆が持ってるかというのは疑問
個人的にはfindMaxValueIndexとかいうメソッド名にしてくれたら時間かかりそうだなって思えるけど
0237デフォルトの名無しさん (ササクッテロ Spc9-s3GQ)2016/06/30(木) 08:37:21.45ID:sNJzBkxbp
そんな自分都合の思い込み(言い訳)は知らんよ
あと、getなんちゃらとfindなんちゃらの計算コストが違うという共通認識を皆が持ってるか疑問
という疑問も持った方がいいな、コメントにでも注釈付けとけ
0238デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/06/30(木) 09:12:12.94ID:EbiLSiSEa
ボトルネック探しやチューニングはある程度完成してからまとめてやれ
>>236はA型っぽいな
0239デフォルトの名無しさん (ワッチョイ 9910-/PL2)2016/06/30(木) 13:31:10.66ID:msjqUaEK0
>>237
前半分は>>234に対する疑問で、
「普通はキャッシュや事前計算」って言える程普通じゃないだろうってことを言いたいだけだったんだけど、大抵のケースでキャッシュや事前計算で解決できると思ってるのだって思い込みだろう?

後ろ半分の話は>>233に対する疑問でプロパティの代わりにgetメソッドが用意されてたら沢山呼ばないほうがいい風潮になってるの?ってことを聞きたかったんだけど
個人的にはgetとfindだったらfindは毎回計算してそう、と言っただけで皆そう思ってるはずだからこうするべきと言ってるわけじゃないのになんでget/findの共通認識がどうのっていう言い方で返されるのか疑問
0240デフォルトの名無しさん (アウアウ Sa61-bRa0)2016/06/30(木) 13:41:20.24ID:nPgPHtAra
高コストである旨はコメントに書いておけばいい
はい、解決
0241デフォルトの名無しさん (ササクッテロ Spc9-s3GQ)2016/06/30(木) 16:03:43.53ID:sNJzBkxbp
長い三行で
0242デフォルトの名無しさん (オイコラミネオ MMb4-oxCW)2016/06/30(木) 17:46:55.60ID:UTC/JhrUM
Tab BarとPage Controlを組み合わせたUIどう思う?
(iOS Human Interface Guidelinesと照らし合わせてみて)
0243デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/06/30(木) 17:59:01.00ID:1eFZP5OCa
普通
0244デフォルトの名無しさん (ワッチョイ 613c-R7o+)2016/06/30(木) 21:24:06.00ID:LYDVxhPg0
Twitterとかもやってるし別に普通だな
0245デフォルトの名無しさん (ワッチョイ 1e93-oxCW)2016/06/30(木) 22:06:23.41ID:Y+MKvNri0
レスありがとうね( ^ω^ )
0246デフォルトの名無しさん (オイコラミネオ MMb4-oxCW)2016/07/01(金) 10:42:50.38ID:kTHfiOpEM
iOSのiTunes StoreライクにTab Barの色をView毎に変えるにはどうすればよいですか?
0247デフォルトの名無しさん (ワッチョイ e0c9-dfX6)2016/07/01(金) 11:05:47.74ID:iZbsZJ7a0
>>246
[SDK]iPhoneアプリ開発初心者質問箱46[touch][iPad] [無断転載禁止]©2ch.net
http://potato.2ch.net/test/read.cgi/mac/1460975101/
0248デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/04(月) 01:39:07.20ID:jde26vCm0
たまに遭遇するgetオンリーな操作子ウザイんだけど何であんなものが必要なわけ?
例えば 配列.last で最後のやつ弄りたいのにgetオンリーでエラーって誰得?
0249デフォルトの名無しさん (アウアウ Saf6-dfX6)2016/07/04(月) 02:00:42.87ID:0HQjDP9Aa
お前のようなアホに勝手に配列の中身を変えられないようにするため
0250デフォルトの名無しさん (ワッチョイ dd91-s3GQ)2016/07/04(月) 09:08:10.81ID:/fDVk2WK0
お前以外が特に得しないsetterは別にいらんけど
俺得なインターフェースが欲しいなら適当にextensionで追加しろ
0251デフォルトの名無しさん (ワッチョイ e0c9-dfX6)2016/07/04(月) 16:07:03.69ID:tmQPI5vq0
lastにsetとか、最後尾を入れ替えるのか、最後尾に付け足すのか分かりづらいだろ
0252デフォルトの名無しさん (アウアウ Sa25-dfX6)2016/07/04(月) 16:14:50.13ID:3xy2R967a
いやそういう問題ではないんだが...
0253デフォルトの名無しさん (アウウィフ FF25-PhU/)2016/07/04(月) 16:40:04.39ID:igr6hGQQF
appendよりもaddendの方が判りやすいというのなら同意したのに
0254デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/04(月) 16:58:30.84ID:luyT0NF10
>>251
最後尾に追加はappendでしょ
lastって普通最後尾のエレメントを指さないか?
0255デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/04(月) 21:24:07.43ID:7j/w943c0
ようするにこういうことでしょ
var array= [1, 1, 4, 5, 1, 4]
array.last = 1919
array // => [1, 1, 4, 5, 1, 1919]
0256デフォルトの名無しさん (ワッチョイ dd91-s3GQ)2016/07/04(月) 21:40:05.02ID:/fDVk2WK0
それはみんな分かってなんやかんや言ってるんだが...
0257デフォルトの名無しさん (アウアウ Sa25-dfX6)2016/07/04(月) 22:02:44.49ID:1KMIHZLQa
しかし、変なこと考える奴がいるもんだな
なぜそうなってるのかは考えようとせずとにかく自分の思い通りの動きをしないものが気に入らなくてしようがないんだろうな
0258デフォルトの名無しさん (アウアウ Sa61-gY7w)2016/07/05(火) 00:43:22.40ID:+KIX5k5ra
タプルの比較で質問です、
(1, "aaa") < (1, "bbb")
がtrueになるのはどうしてでしょうか、
< は未満だからfalseになると思うんですが
0259デフォルトの名無しさん (アウアウ Sa61-gY7w)2016/07/05(火) 00:54:02.88ID:+KIX5k5ra
すみません、自己解決しましたなんとなく
0260デフォルトの名無しさん (ワッチョイ e0c9-dfX6)2016/07/05(火) 00:56:10.26ID:ujdX1xtz0
/// A [lexicographical order](https://en.wikipedia.org/wiki/Lexicographical_order)
/// over tuples of `Comparable` elements.
///
/// Given two tuples `(a1, a2, ..., aN)` and `(b1, b2, ..., bN)`, the
/// first tuple is `<` the second tuple iff `a1 < b1` or
/// (`a1 == b1` and `(a2, ..., aN) < (b2, ..., bN)`).
public func <<A : Comparable, B : Comparable>(lhs: (A, B), rhs: (A, B)) -> Bool
0261デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/05(火) 07:52:58.12ID:SiEQh+4z0
何で{ get }にするのか未だに解ってないんだが、、
配列.lastの所を勝手に書き換えようと思えば配列[配列.endIndex - 1 ]で書き換えられる訳だし、単に不便な関数って認識しかまだ無い
0262デフォルトの名無しさん (アウアウ Sa25-dfX6)2016/07/05(火) 09:55:20.08ID:hBbm7EY+a
なんで最後の要素だけ書き換えたがるのか知らんが、そんなプロパティ?必要か?
どうしても必要ならエクステンション使って自分で書けばいいだろ

コード読んでて、例えば配列の要素を検索するような明らかに配列の更新が不要な場面で、配列の要素を書き換え可能なプロパティが使われてるとちょっと不安にならね?
0263デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/05(火) 10:36:43.37ID:R42S1A9Q0
>>261
配列で置換する場合って、再生成するコストかかるからじゃねーの?
lastだけgetで欲しいのに内部でいちいちコピーされてたら遅くてたまんねーよ。
0264デフォルトの名無しさん (ワッチョイ 613c-dfX6)2016/07/05(火) 10:51:08.99ID:R42S1A9Q0
263だけど、なんかバカなこと書いたな。setの時だけコピーすりゃいいだけの話だから違うな。
あれだ、lastってnuallableだからemptyの時の動作が不定になるから・・・とか?
0265デフォルトの名無しさん (アウアウ Sa25-dfX6)2016/07/05(火) 10:52:33.32ID:hBbm7EY+a
いや要素書き換えたぐらいで配列のコピーはされんだろ
■ このスレッドは過去ログ倉庫に格納されています