【Cocoa】Macプログラマのスレ【Objective-C】
1 :
仕様書無しさん :
2008/06/23(月) 17:06:37
2 :
仕様書無しさん :2008/06/23(月) 17:19:43
[NSNumber numberWithInt:2];
ほか 恋姫亜 恋々愛 紅香麻 虹空 湖冴空 心空 香々愛 心暖 瑚々明 湖々葵 心温 心々愛 心厚 心明 心愛 琥々愛 心天 心杏 心彩 胡々杏 心亜 心愛 胡杏 心空 恋央
凛心(りんご) 90 倫子(りんご) 42 鈴恋(りんご) 41 林檎(りんご) 33 鈴瑚(あっぷる) 94 星(あっぷる) 93 真都玖(まっく) 33
なんでここにたてるの?
7 :
仕様書無しさん :2008/06/23(月) 20:52:15
iPhone発売後はともかく、今仕事でやっている奴っているのか?
いなかったら今出てるアプリは勝手に湧いてきたのかい?
趣味じゃないの?
はいはい。 全部俺が作りました。
11 :
仕様書無しさん :2008/06/24(火) 05:46:31
Cocotronつこうたやついる?
>>7 Sega の Monkey Ball 開発担当のオレが来ましたよ。冗談だけど。
ほんとに iPhone 開発者さん降臨きぼう。
13 :
仕様書無しさん :2008/06/29(日) 23:37:56
Mac向け技術って数年後にはいつも消滅するのがなあ。 Winだったら陳腐化こそすれ完全に消滅にはならんでしょ。 QuickDraw GX、Opendoc、GameSprockets……。 まあどっちみち現状のOS Xにはまったく魅力を感じないんだが。(笑) 「あえてWinではなくMacを選ぶ理由」って今や無くなったよねえ。 OS 9とWin MEの世代まではGUIで一日の長を感じたが、それ以降は……。
貴重で希少な意見だな、参考にはならんが。
この手のこと言う奴がOpenDocのパーツエディタ作ったとか QuickDraw GX必須のソフト書いたとかきいたことがねーな。 あの頃から頭が固いのは変わらないんじゃないか?
16 :
仕様書無しさん :2008/06/30(月) 22:52:56
>>16 10年前はYellow Boxって呼ばれてたっけ。ClassicがBlue Box。
これじゃあRhapsodyに移行できないって声が多かったからCarbonが追加された。
>>13 ここは Mac スレというより、むしろ NeXTSTEP スレですよ。
んだ。 CocoaなんてちっともMacな環境じゃないな。 10年前のNeXT環境と基本なんにもかわらねぇ。
NeXT が 1988 ~ 1997 ぐらい?で Apple を乗っ取ったのが 1997 年で、 OS X が出たのが 2001年。いまは 2008 年だから、 もう乗っ取り前と乗っ取り後がおなじぐらい歴史あるんだね。 時間の経つのははやい。
ほ
>>20 乗っ取った、と言うよりジョブスがマークラから取り返したという見方もあり。
ま、金の面では創業からマークラの会社だったんだけどさ。
びみょうに面白そうで、Smalltalk な Objective-C のスレはここですか?
いいえ、ム板に行ってください
↓ここから日本語AppleScriptスレ↓
↑矢印厨↑
“アップルスクリプト日本語表現”を表示する
日本語 AppleScript ってもうずっと昔にサポートが終了してて、OS X では実装されてないと思ってたけど ???
そうだよ。 漢字Talk時代には英語日本語フランス語でスクリプティングできたんですよ。
そんな旧 Mac OS 系の話をされても困るんだけど... スレタイトルにあるように、Cocoa - Obj-C という旧 NeXT - OS X 系のスレです
雑談系であるマ板に勃てちゃった以上、容認汁。
Cocoa-Java ってのもあったね。今は Ruby に移行したの? どちらにせよいつまでサポートされるのやら……。
RubyCocoaやPyObjCをCocoa-Javaと一緒にしないでもらいたい。
Win板でこれからはmacの時代だと息巻いてる香具師を誰か回収してやって。 こんな状況でWinからの移民は支え切れんだろ…
回収してほしけりゃMac板を荒らすために●まで買った駄犬を引き取ってくださいよ。
37 :
仕様書無しさん :2008/12/04(木) 19:26:22
>>37 小さいと気に入った服があってもサイズがない
よってこうなる
おしゃれする権利がない←×
おしゃれのしようがない←○
どこの誤爆か知らんが、小さい女性は好きだ。
39 :
仕様書無しさん :2008/12/07(日) 17:29:53
>>37 Z
z
z
<⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
Objective-Cよくわからんけど、書いてみたら見た目綺麗だな ポインタって使えるんかな
もちろん使えますがな。
Cでできることは全てできますがな
43 :
仕様書無しさん :2009/02/19(木) 13:22:27
プログラミング未経験で、これからObjective-Cを覚えようと思うのですが、 いきなり入り込んでも大丈夫なのでしょうか? それともC言語を先に勉強しないと理解できないのでしょうか?
理解できないっていうか、ObjCはCの拡張だから先にCを使えるようになってれば覚えることが少なくて済む
>>44 覚える事が少なくて済むという事は、必ずしもCから先に勉強しなくても良いという事ですね?
>>46 ありがとうございます!
参考書やサイトを見ながら勉強してみます!
48 :
仕様書無しさん :2009/02/27(金) 00:36:59
iphoneのプログラムもここで良い? iphoneでプログラム実行中に homeボタン押した時に処理させたいんだけど どうやれば良いの?
は?
マルチスレッド?
iMacを買って、たのしいcocoa本でプログラミングを始めたばかりの者です。 たのしいcocoaプログラミングのP.82のアウトレットとアクションの接続について質問さ せて下さい。 App Controlerのインスタンスを選択してcontrolキーを押しつつドラッグ、線が伸びて テキストフィールドにドロップすると、アウトレットを表示する黒いウィンドウが出る、と あるのですがその黒いウィンドウが出ません(青い線は伸びます)。 アクションの接続でも同様です。 試しに「Say Hello」のボタンからテキストフィールドにcontrolでドラッグドロップしてみ ると黒いウィンドウは出まして、 App Controller、テキストフィールド、ボタンを単体でcontrolキーを押すと黒いウィンド ウは出ますが、AppControllerからテキストフィールドだと出てくれません。 やり直してみたのですが黒ウィンドウは出ず、ググってみてもそれらしき原因が分かり ません。 情けない質問で申し訳ありませんが、原因またはアドバイスをいただけないでしょうか。
>>51 そのApp Controllerのクラスがアウトレットを持たなければ黒いウィンドウは出ないはずです。
これはスタブをもとに自分で実装しているクラスのインスタンスなのでしょうか?
それだったらクラスのインスタンス変数宣言のところで
IBOutlet id outletObj;
のように、IBOutletをつけないとInterface Builderでアウトレットとして認識されません。
こういう内容はここよりも新mac板の Cocoaはさっぱり スレで聞く方がいいです。
http://pc11.2ch.net/test/read.cgi/mac/1231853172
>>52 了解しました。
Cocoaさっぱりスレで聞いてみます。
ありがとうございました。
54 :
仕様書無しさん :2009/04/26(日) 17:22:22
今、Apple Developer Connectionにログインできないのは俺だけか? ドキュメントを読みたいんだが。
55 :
54 :2009/04/26(日) 18:11:00
ログインできた。一時的なサーバー不調だったっぽい。
ADC Selectに会社で加入してOrientation Kitが届いたんだけど、 小さいパンフとTシャツが入っているだけでした。 こんなもんですか?
他に何が欲しいんだ。 ジョブズのアクションフィギュアとか?
58 :
仕様書無しさん :2009/08/23(日) 18:13:47
初心者なんですが質問いいでしょうか。 ターミナルを使って(Xcodeも入れてます)C言語を勉強してるんですが、 gcc(空白)→ .cファイルを挿入→ -oで場所やファイル名変更をしようとすると、 なぜかコンパイル失敗することが多くて困っています。 しぶしぶホーム→a.outでやってるのですが、ひとつ作るたびに削除しにいくのが面倒で・・・。 場所と名前変更で失敗しないコツ、ソースコード(?)をひとまとめにする方法 教えてください。宜しくお願いします。
59 :
58 :2009/08/23(日) 18:32:02
すいません追加で質問です。 場所&名前変更で成功した場合でも、ターミナルから./(ファイル名)で 実行しようとすると必ず失敗してしまいます。(./a.outならできます) 原因がわからず困っています、分かる方宜しくお願いします!
エラーメッセージ
61 :
58 :2009/08/23(日) 19:09:01
>>60 ファイル名はhello world.outで、 ./hello world.out と./hello\ world.out
両方試してみても(後者はターミナル内のファイル名でなぜか\が付加されてたので試してみました)
-bash: ./hello world.out: No such file or directory
というエラーがでてしまいます。
格納フォルダ名もファイル名も合っているのですが・・・。
ここってプログラムスレじゃなくてプログラマスレだよね
>>61 ./hel*.out
ってやってみたらどうなる?
>>62 申し訳ないです、プログラムスレがあったの知りませんでした。
次回からそちらで質問します。
>>63 -bash: hel*.out: command not found
となってしまいました。なんでできないんですかねえ…
どうでもいいけどファイル名にスペース入れるな アンダースコアかなんかで代用しろ
>>65 知りませんでした、教えてくれてありがとう。
./hello¥ world.out でうまくいくが?
>>67 何度も試しましたが無理でした。
使用PCが海外仕様(キーボードにかな表記ないやつ)なのが原因なのかもしれません。
んなこたぁない
ディレクトリが違っているとか・・・
ここで書かれている\は円記号であってバックスラッシュではない ひねりが加わっているが "hello\ world.out" も円記号とスペースを含むファイル名である。 つまり、、、、
shellの挙動になれるまでは無理にファイル名にスペースいれないほうがいいと思うんじゃが
>>68 疑り深い奴だなぁ。ほれ。
$ cat hello¥ world.c
#include <stdio.h>
int main(int argc,char *argv[]) {
printf("Hello World¥n");
return 0;
}
$ cc hello¥ world.c -o hello¥ world.out
$ ./hello¥ world.out
Hello World
$
複数のページを持つ PDF ファイルから、各ページのサムネール画像を生成したいと思っています。生成する画像フォーマットは GIF か JPEG を考えているんですが、面倒でしょうか? PDFkit ってのがるみたいで、そいつを利用したら簡単にできるかなと思っています。 普通に Windows で組むと Adobe のデベロッパライセンスが必要なみたいなんで… これが可能なら、Mac で作ろうと思っている状態です。
>>面倒でしょうか? 面倒か面倒でないか、何を基準におまえにアドバイスすればいいんだ?
今、PDFkitのリファレンスをざっと眺めたんだけど、 ページのイメージを画面に表示するとかプリンタに出力するとかはあるんだけど、 画像ファイルとして書き出すのは無いっぽいな。
77 :
仕様書無しさん :2009/11/08(日) 15:37:17
NSPDFImageRepってのがあるからできるんじゃね?
79 :
仕様書無しさん :2010/01/28(木) 16:38:24
学習のためだけにいちいちWinで読み込んでからMacで使うのが煩わしいので WinにあるアプリケーションをMac用に個人的に移植するにはどうすればいいのでしょうか?
VMWare Fusion でも Parallels でも BootCamp でもなんでもご自由に
すまんそのようなソフトがあるのはもち知ってる おれはWinのアプリをMacで使うためにとは聞いてないんだ 作ってみたかったから聞いてみたんだがスレ違いなんかな・・・
82 :
仕様書無しさん :2010/01/28(木) 21:01:10
Xcodeでフルスクラッチで書けばいいんじゃないかな。
俺もフルスクラッチって書こうとした
まず、該当ソフトのソースコードを入手します。 次にソースコードを解析します。 そしてMac用に組みなおします。 簡単ですね。
81にかかればお茶の子さいさいだな。
86 :
仕様書無しさん :2010/03/09(火) 21:13:59
@interface MyList : NSMutableArray {} @end っつうクラスを作ったんだけど、NSMutableArrayのメソッドを呼出せないのは何故でしょう. 下記のコードが実行時に例外で死にます。 int main( int argc, char* argv[] ) { MyList* list = [ [ MyList alloc ] init ]; [ list addObject: [ NSString stringWithFormat: @"%d", argc ] ]; }
あのな、NSArray, NSMutableArray ってのはクラスクラスタ、ちゅーやつでやな、 そのまま継承しても、実体を伴わんのや。中身を用意したらんとあかん。 ちょっとめんどいで、ええか?難しゅう言うとな、必須のメソッドと、データ構造を 持ってないと、NSArrayとして機能せんのや。よーリファレンスを読んでみ、その辺 ちゃーんと書いてあるわ。まぁ簡単に言うとな、NSArray にいるメソッドは、 count, objectAtIndex:, lastObject, の3つや。Mutableはさらに、addObject:, insertObject:, removeLastObject, removeObjectAtIndex, replaceObjectAtIndex:withObject: の…ひの、ふの、…まぁ、ギョーサン実装せなあかんちゅうこっちゃ。 その代わりや、こいつらさえ実装しとけば、中身のデータ構造がどないやっても、 外から見たら配列になっとる、ちゅー訳や。まぁ、面倒くさかったらな、 @interface MyMutArray : NSMutableArray {NSMutableArray *hoge;}@end @implementation - (NSUInteger) count { return [hoge count]; } // 以下、色々略 みたいにしとけばええわ。あとはcontentArrayがよろしうやってくれる。
大阪弁でありがとうございます。
90 :
仕様書無しさん :2010/03/14(日) 01:59:54
webからデータを収集するアプリを作って遊んでいます。 しかし、 NSData data = [ NSData dataWithContentsOfURL: url ]; を連発すると、ポートを使い果たしてしまい、プログラムが終了してしまいます。 対処法を教えて下さい。
まずはアスタリスクが必要かなあ。
お前ニキビができるとイジクリまわすだろ。
∧∧ コイヤァァァァ!! (д´*) (⊃⌒*⌒⊂) /_ノωヽ_)
君の使い古したポートに用はないのだよ。 [ NSData dataWithContentsOfURL: url ] がポートを食い尽くす問題に答えてやってくれ。
95 :
仕様書無しさん :2010/03/14(日) 15:05:21
[ NSData dataWithContentsOfURL: url ] でurl毎にコネクションを張って、ガベコレ時に行われるポートの解放が追いついていないと推測。 コネクションを自分で管理すればいいんでないか。おれはやり方判らんけど。
If you need to know what was the reason for failure, use dataWithContentsOfURL:options:error:. 俺ならとりあえずこれを使ってみるかな。 ダメなら、エラーが分かればそれに沿った対応するけど、分からないので、signal(3)系統を使う。
ここあはやっぱりもりなが
98 :
仕様書無しさん :2010/05/04(火) 17:17:15
Windows用のコンパイラーとかありますかい?
>>98 Objective-C のコンパイラはある。
Windows 版の Cocoa は無い。
誰かCocotronでなんか作った香具師いる?
HyperCardのスタック作者が集うスレはここですか?
プログラミングごとき13インチMBPで十分と思ったが、画面狭すぎてXcode使いにくいナリ・・・
HMDT本って、Amazonのレビューを読むと3は2の続編らしいんだけど、3冊全て読んだ方が良い?
3は CoreData の解説がよい。CoreData 触るつもりならお勧め。 とりあえず、買って損はない内容。1飛ばして 2, 3 でもいけるかも。
というか2は1のただの改訂版だから2, 3だけでいい
配列に入れてるNSString*型の文字を取り出したくて、descriptionを使ったのですが、 NSLogで見ると文字化け?してしまいます。どうしたら元のまま取り出せるでしょうか? NSArray* arrayTemp = [NSArray arrayWithObjects:@"A",nil]; NSString* stringTemp = [arrayTemp description]; NSLog(@"stringTemp is %s",stringTemp); 2010-09-16 01:50:24.925 if==[1940:207] stringTemp is `_?≠
NSLog(@"stringTemp is %@", stringTemp); で幸せになれる。%s はC文字列、%@ はObj-C obj。 NSLog(@"arrayTemp is %@", arrayTemp); でも幸せになれるであろう。
%sじゃなくて、%@じゃない?
Descだとマルチバイト文字はU+なんたらにエンコードされるんだよ。
112 :
108 :2010/09/16(木) 17:13:03
>>109 >>110 ありがとうございます。
しかし%@で取り出すと、次に
if (stringTemp == @"A")
が真にならないという事が起きました。
自分の用事はただ単にobjectAtIndexで取り出せばよかったと言う大ボケでしたが、
(それは配列objのままで抜き出してしまうと勘違いしてた)
%@で判断して無視された後にNSLogで%@で見るとちゃんと"A"が表示されるので混乱しました。
>>111 ありがとうございます。
実はエンコードは色々試したのですが、私の見たものの中では無かったです。
良ければどんなメソッドで戻せますでしょうか教えて下さい。
>>112 > if (stringTemp == @"A")
> が真にならないという事が起きました。
ポインタの比較してどうする。
内容の比較するなら isEqualString: 使えよ。
NSLog(@"%d", [stringTemp length]); NSLog(@"%d", [@"A" length]);
>>112 >113フォロー、-isEqualToString: (NSString なら isEqual: と同じ)ね。
Cでも、char *strA = "A"; char *strB = "A"; strA == strB は偽になるでしょ。
strcmp() で比較するように、isEqualToString: で比較する。
>>114 何が言いたいのかさっぱり分からん。
NSLog(@"%p %p", stringTemp, @"A") ならまだ理解できるが…
116 :
114 :2010/09/16(木) 18:45:10
9と1が表示されます。
117 :
114 :2010/09/16(木) 18:55:57
>>115 追加で、真になりました。環境依存?
const char *strA = "A";
const char *strB = "A";
if (strA == strB ) {NSLog(@"true");}
else {NSLog(@"false");}
>>116 分かった。stringTemp = [arrayTemp description]; のつもりなのね。
>112 に「objectAtIndex: で(ry」とあるので、たぶん取り出したんだろ。
ま、確かにもうちょっと分かりやすく書いて欲しいね。
「%@で判〜」のところは何言ってるのか分からんしw
>>117 コンパイラ賢いな。ごめん、うちもなったw じゃあこれ、
char strA[2] = "A"; char *strB = "A"; これで比較したらならないはず…
120 :
114 :2010/09/16(木) 19:41:08
>>119 それだとこっちの環境でも偽になりました。strcmpは0の等しいを返すし。
>>114 ポインタ比較やってるからそれで正しい。strcmp は値である「文字列」を比較している。
NSString * でも、同じこと。どうやら君は「ポインタ」の理解が足りてないようだ。
122 :
114 :2010/09/16(木) 20:36:08
>>121 アンカーが114になってますけど、
>>120 の内容についてってことでいいです?
>>120 についてなら、書いてあることは理解できるけど、
>>114 についてだとちょっと理解できないので、補足していただけるとありがたい。
ポインタは難しい。
>121 は >120 の内容についてでおk もしかして >121≠ >108 なのか?もうわけわからん…
124 :
114 :2010/09/16(木) 21:28:55
なんというアンカの嵐w
126 :
108 :2010/09/16(木) 23:06:52
つまり、ポインタ変数のアスタリスク無し表記は、 内容を指したアドレス値を表していると思えば良いのですね。 で、演算子は内容を参照する機能はないと言う事ですね。
>>114 混乱して途中から>108 = >114 だと思ってたよ、すまない。
しかも>123でアンカミスしてたのねorz IDでないと分かりにくいなぁ
メモリ確保の領域が違うからね、その辺調べるといいよ>char strA[2] = "A", *strB = "A";
>>108 だいたいあってる。けど、ちゃんと書籍などでポインタを理解した方がいいよ。
「C言語ポインタ完全制覇」って本が定評。
ポインタの差す先の値をとってくる間接参照演算子(*)というのもある。
128 :
108 :2010/09/18(土) 13:31:47
129 :
108 :2010/09/18(土) 13:35:40
また質問なんですが、 参照カウントの勉強にサンプルを書いて色々な所でretainCountをNSLogに出してみたのですが、意外な結果ばかりでます。 まずNSString*の変数ですが、それをretainCountするとメチャクチャな数字が出ました。 NSString* string = @"baka"; NSLog("%d",[string retainCount]); 仕方がないので、自前でクラスを作りました。 呼び出し側クラス MyClass* myClass = [MyClass alloc]; myClass = [myClass?xA0;myMethod:myClass]; 呼び出され側クラスのメソッド - (MyClass*)myMethod:(MyClass*)myClass;{ ?xA0;?xA0;return myClass; } 例えば、allocの行の下に NSLog("%d",[myClass retainCount]); を仕込みますと、当然1が出ますが、 myMethodのreturnの上の行にそれを置くと、-1と出ました。 自分の理解では合成される毎にretainCountが増えると思っていたのですが。。 どう考えたら良いのでしょうか?
130 :
108 :2010/09/18(土) 13:51:30
すいません xA0; と言う意味不明暗号が表示されているかもしれませんが、 それはスペースと読み替えてください、、。
retainCountなんてただの飾りです そして、-1を返すのは正しい実装です。 (まあ、実際はNSUIntegerなので-1じゃなくてNSUIntegerMaxなんですけどね)
これだけじゃ不親切か オブジェクトにはあなたが期待するとおりretainCountが変動するものと、そうでないものがあります NSStringオブジェクトはretainCountが期待するとおり変動しないオブジェクトのひとつです
133 :
仕様書無しさん :2010/09/18(土) 23:56:33
>129 なるほど。 そうすると、同じ仕組みで解放されないクラスを作成することができそうですね。
>>133 シングルトンクラス(開放されないオブジェクト)の作り方は、
Cocoa Fundamental Guide の Cocoa Design Patten にのってる。
あとメモリ管理ガイド(iPhone dev で日本語版あり)を読んでおくといい。
135 :
108 :2010/09/21(火) 16:15:00
>>132 ありがとうございます。
実はobjective-c入門の本を読んでもメモリ全然分からない、、。
萩原本を読み返しつつ、Analyze して出た警告を対処していったり、Instruments が拾う Leak を逐一解消していったら作法が分かる。
使ったこと無いけど、GCで解決な気が。
GCに頼っていたらiPhoneアプリが作れないからダメだ。
今すぐiPhoneアプリ開発するならそうだけど、 悩んで進まないくらいなら、GC使ってさっさとアプリ作った方が楽しいと思うけどな。
140 :
108 :2010/09/24(金) 20:25:48
>立ち読みしました。ピンクの入門の本より全然わかりやすいです。 良かったなら買ってやれよ。
142 :
108 :2010/09/24(金) 22:09:11
>>141 ピンクの入門を買ってしまった事がそれを微妙に躊躇させます、、。
ピンクも上での基本を押さえれば、外人の文章によくある、含みのある表現も理解出来ました。
すいません、switch文で定数と比較したいのですがエラーになります #define aaa 15; ... switch (bbb) { case aaa: NSLog(@"yes"); break; }
144 :
仕様書無しさん :2010/10/19(火) 09:47:58
そのセミコロンはなんだ?
145 :
143 :2010/10/19(火) 10:40:58
defineの;いらないんですね!エラー出なくなりました。 基本的な事ですんません tks
新構文かと思った。
147 :
仕様書無しさん :2010/10/28(木) 07:32:19
質問です。 NSOpenGLViewの乗っかったNSWindowで透明をやりたいのですが (ウィンドウの向こうが透けている)失敗しています。 まずNSWindow。 [window setBackgroundColor: [NSColor clearColor]]; [window setOpaque:NO]; これでウィンドウは透明に出来た。多分これでいいのかと。 しかし、NSOpenGLViewでつまづいてます。 -(void) drawRect: (NSRect) dirtyRect { glClearColor( 0.0f, 0.0f, 0.0f, 0.0f ); glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } でビューが真っ黒に。glClearColorのアルファ=0.0なんだけど。 ちなみに、アルファ=0.5でも真っ黒ですね。 NSOpenGLViewの段階で、ビューの向こうが透けて見えるように するには、どうしたらいいのでしょう?
iPhoneでNSHTTPStorage setCookieでNSHTTPCookieを保存しようとするんですが、ログに吐き出しても反映されていないようです。 使い方間違っているのでしょうか?
UIWebViewのUser-Agentを変えたいんだが。
好きにしろ
151 :
仕様書無しさん :2010/12/01(水) 23:29:41
NSDataのなかの特定の範囲のバイト列を取り出して、32ビットのint型に 変換したいのですが、どのような方法がありますでしょうか? subdataWithRange:NSMakeRange(3,4) のようにしてバイト列を 取り出すと思うのですが、このあとどうすればよいかわかりません。
152 :
151 :2010/12/01(水) 23:51:16
これ↓でやりたいことはできそうなのですが int32_t datasize; [data getBytes:&datasize]; できれば、JavaにあるByteBufferのgetIntのような感じで取得したいのですが そういう方法ってありますか?
153 :
Perl忍者 ◆M5ZWRnXOj6 :2010/12/04(土) 14:54:38
OS8,9時代をしらないガキマカはしね
154 :
仕様書無しさん :2010/12/04(土) 15:12:40
わーい 久しぶりにおかしな人が来たw どうして死なないといけないの?w >おじいさんw
8,9程度でイキがってんじゃねえよハゲ せめて7
>>155 ああ、おにぎりな。
E電並に定着しなかったが、中身は進化したね。
157 :
Perl忍者 ◆M5ZWRnXOj6 :2010/12/06(月) 00:07:06
俺は8,9時代を謳歌したからな Macコミュも制覇してきたし 今ではハッカーとして落ち着いてきてるしな ハゲはてめえだろハゲ Objecitve−Cだろこら いまじゃMacつかってねえからな またやろうかな Macアプリ作りたかったんだけどな なんていうかiphoneだらけだったしな さすがにMacアプリなんてあれだろ だからPerlにしたんだけどな 昔のマックはお正月に あけましておめでとうとか出たしな プラチナサウンドの響きがここちよくてな うざくなってきたけど 酒井さんのゲームなどハピネス 侍道 オレバス...etcなどいろいろやってたけどな ど素人がわめいてんじゃねえよこら
ごめん それ自称上級者(≒素人に毛が生えた程度)の発言にしか見えんわ
159 :
Perl忍者 ◆M5ZWRnXOj6 :2010/12/06(月) 00:10:22
自称じゃなくて上級者だからな 知ったかぶりすんなよ
160 :
Perl忍者 ◆M5ZWRnXOj6 :2010/12/06(月) 00:11:35
マカーって独特の反論があるよな 単芝つけてきたり すばやい応答 暇人ニートの巣窟だからなゴミマカは ワインやブランデーなどの酒の画像とかアップしてるカスマカ多いわ
コレはひでぇw って相手してもらえるのが嬉しいだろうなこのハゲ
162 :
Perl忍者 ◆M5ZWRnXOj6 :2010/12/06(月) 00:12:32
てめえも所詮カスマカ マカーから脱皮できないごみ ターミナルかちかちいじってるゴミだよ ポートでぶちこんでる低能 とりあえずosx進めてる低能 お前らみたいなごみな ゴミはしねな 死ね
163 :
Perl忍者 ◆M5ZWRnXOj6 :2010/12/06(月) 00:14:18
マカーの限界ってしってる? 製品などでわめいてるだけ、だからお前らは新作製品でわめくことしかできないんだよ マカコミュでアップル製品について熱弁してればいいよ プログラミングもできねえごみw Perlやってるやついたなクソマカに、大してできてねえごみみたいだったけどw ログ編集してる程度のカスw
164 :
Perl忍者 ◆M5ZWRnXOj6 :2010/12/06(月) 00:18:48
hapyer cardとかもそんなもん知ってるしな あの絵本みたいなやつだよな 白黒の Macのこと+コミュならほぼ知り尽くしてるよ ほぼ知ってるし 低レベルなんだよお前ら
つか俺マカじゃないんで サーセンwwww
166 :
仕様書無しさん :2010/12/07(火) 09:53:02
意外に礼儀正しい良い人で笑ったw おじいさんとか言ってごめんなさい
iphoneの開発ツールでObject-C使わなくてもC++で出来るってフリーソフトがあるんだけど それで作ってる人おらぬ?
>>167 XcodeっていうフリーソフトがCでもC++でも
iPhone用にプログラム組めてお勧めだよ。
すべてCのみで作れる?いっさいObject-無視して純Cのみで
当たり前じゃん。
エントリポイントがC、後はどうすればいいか、わかるでしょう
173 :
仕様書無しさん :2010/12/24(金) 03:42:39
Interface Builderで、UILabelなんかを斜めに配置する事ってできないのかな。 今はコードでtransformプロパティでちまちまやってるんだけど、数が多くて発狂しそう。 どなたか知ってる方おられたら教えてください。
自分でIBプラグイン作れば。
175 :
仕様書無しさん :2011/01/18(火) 12:57:59
@interdace .... @end をクラス宣言としてヘッダーに記述しますが、 クラスはmまたはmmに @implements ... @end ですが、 この部分をソースファイルを2つ以上に分割できますか? やってみたら、ヘッダーに@propatyがあるので、@synthsizeも 同様に記述しないとすべてワーニングとなります
突っ込みは全部置いとくとして、「カテゴリ」でググれ
177 :
仕様書無しさん :2011/01/18(火) 17:07:02
>>176 にゃーるほど、非常thanks
こんな言語仕様があったとは
178 :
仕様書無しさん :2011/02/05(土) 12:22:55
NSLogに日本語を表示するとき、 NSString* nsstr = @"漢字abc"; NSLog(@"%@", nsstr);はもちろん可能ですが std::string str = "漢字abc"; NSLog(@"%s", str.c_str()); は表示されない。STLでもただ"漢字abc"ではなくて"abc" だけなら表示される。 これはなぜなのかがわかりません。
文字コードが違う
180 :
仕様書無しさん :2011/04/19(火) 12:16:43.29
int hoge[100]; って感じで配列を宣言したときって 自動でメモリは確保されるのでしょうか? 関係ない処理をしている間に内容が変更されてしまうので困っています…
お前はナニを言ってるんだ。記憶クラスって知ってる?
初心者にありがちなメモリ破壊
BSSなのかスタックなのかにもよるが
自動変数のアドレスを呼び出し元の関数に返していた新人を思い出した。
Server用途でないJavaとは速度差はなく、生産性は、携帯機器で優位なメモリ占有の少なさがある。 C++と比べると、遅いのは分かってること。驚く必要なし。生産性、習得の用意さもあり、適度なスピードもあり、バランス取れてるから問題なし。
186 :
仕様書無しさん :2011/04/28(木) 13:46:39.46
iOSのCOREDATAって使いやすいの? 例えば1000個くらいの固定された商品データ管理とか、XMLからオブジェクトに読んでやるより CoreData使った方がいいんかな?
un
188 :
仕様書無しさん :2011/04/30(土) 01:41:03.17
網羅性維持のためだけに存在しているインターンのバイト学生が書いたような 地雷クラスメソッドを踏まないようにすればいいだけ。 若き「老害」を生まないためにも本物の窓際おじいちゃんはどうせ暇だろ ちゃんとフォローしといてね
これで独立できる
売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
http://tinyurl .com/43xmk7m
http://tinyurl .com/3mopkfy
ここもだろうね。キモチワルイ。
191 :
仕様書無しさん :2011/09/29(木) 21:47:06.19
JavaScriptでwindow.open()を実行した時 -(WebView *) webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request requestが0x0でとれません。 URLを知るにはどのようにしたらよいのでしょうか?
Macは開発しやすい
193 :
仕様書無しさん :2011/11/12(土) 01:07:14.38
開発しやすいのか?
char *str;
すみません 皆さんDBクライアントって何使ってらっしゃいますか? 例えばMySQLとかPosgreとかを操作するアプリです。GUIアプリ使ってますよね??
スレチ
コマンド覚えろ方が楽
コマンドを憶える気はほとんど無いから Navicat の Lite 版
アプリのappバンドルのパスをアプリ自身が実行時に取得する方法があれば教えてください。 よろしくお願いします。
[[NSBundle mainBundle] bundlePath] そのまんまやんけっ
実行ファイルは argv[0] な
202 :
199 :2012/02/15(水) 13:14:47.48
どうもありがとうございます
203 :
仕様書無しさん :2012/02/19(日) 02:04:01.84
iOS5でカレンダーにイベントを追加する時にアラームが付かなくなってしまったのですが、 解決策を教えて頂ける方いらっしゃいますでしょうか。
Delegateを複数実装していくとオブジェクトを作成した元のオブジェクトの メソッドを呼びたくなりますよね。Javaとかだと参照を渡すだけでどうにか できたんですけど、Objective-Cだときれいにならないんですが、みなさんは どうされてますか?説明された書籍とかサイトとかあったらぜひ教えてください
>>204 >Javaとかだと参照を渡すだけでどうにか
>できたんですけど、Objective-Cだときれいにならないんで
ここがわからない。同じじゃないと思うので詳しく
オブジェクトAがオブジェクトBを生成しオブジェクトCに渡す。 オブジェクトCはオブジェクトDを生成しオブジェクトBを渡す。 オブジェクトDがオブジェクトAにアクセスする方法を考えなさい。
参照を渡せばええやん
208 :
204 :2012/02/24(金) 02:43:08.80
>>205 ,206,207
参照渡せばいいですね。普通でした。一応結果書きます。作ったクラスに
自分の参照を渡す場合。
@interface Hoge
property (retain, nonatomic) (Hogehoge *) hogehoge;
@end
@implementation Hoge
//省略
@end
@interface Hogehoge
//省略
@end
@implementation Hogehoge
- (id) init {
Hoge *hoge = [[Hoge alloc] init];
hoge.hogehoge = self;
}
@end
pkgでインストールする際、app以外の外部リソース(pkgになっていない)を単純にコピー したいのですが、できるのでしょうか? PackageMakerのPackage LocationをSelf-Containedとは別の設定にしたりして 試しているのですが、なかなかうまく行きません。 外部リソースをpkgに入れたくない理由ですが、Windows用と共通なデータを 配布ディスクのルートに置いているからです。 よろしくお願いします。
postinstallスクリプト?
211 :
209 :2012/02/25(土) 17:17:44.85
>>210 どうもありがとうございます。
その場合コピー先のフォルダとか、スクリプトがマクロか環境変数とかで
取得出来るんでしょうか?
その辺記載してる資料が見当たらなくて。
envとかecho $*とかしてみれば?
213 :
209 :2012/02/25(土) 21:25:14.92
いちおう動作としては望むものになりましたが、スクリプトでコピーしてる データの容量とプログレスバーが一致しませんね。 根本的な問題なのでどうしようもないか・・・ どもでした。
ちょい質問 cocoaを使ってdllを作っていてホストアプリケーションのウィンドウからモーダルウィンドウを作ってるのですが モーダルウィンドウ上でショートカットキーが使えなくなってます(command + v等) どこか設定を見落としている気がするんですがわかりますかね? あるいはこれを修正しようとすると大変だったりしますか?
単にレスポンダー回りじゃないのかな NSApplication sendAction:to:from: で、to: を nil にしてモーダルウィンドウのアクションを送った場合に受け取れているの? メニューはちゃんと制御できてるの?
おっと何やらいきなり理解を超えたレスが 初心者ですまん コード晒したほうが早いかもしれんな、またその時お願いします
規制で他書けないから ここで教えて下さい Nsstring* str If(a==0) str=@"abc" str=@"def" こんなやり方はダメ? 毎回allocしないとダメ?
ok
219 :
仕様書無しさん :2012/04/05(木) 17:25:44.44
ワーカースレッドを作りたいんですが、
ARCが有効なプロジェクトでなぜか循環参照が起きてしまいます。
weak_selfを__unsafe_unretainedにすればひとまず解決することはわかりました。
ですが、__weakにするとなぜか循環参照がおこって、deallocが呼ばれません。
xcode 4.3.2です。
ttp://codepad.org/EBgxU0jw どなたかご教示ください。
>>221 × __bloack
○ __block
__weak は微妙な位置づけだよね。Zeroing 対象ってことは、ただの変数じゃないし、かと言って __strong (retain) ほどはっきり主張しているわけでもなく
>>220-222 試してみたけど、よくわかんないな
スレッドの終了をさせるのが無いようなので、main で
server.isContinue = NO;
を付け加えると、スレッドを終了すると 無し(__strong)/__block/__weak/__block __weak どれもちゃんと最後には dealloc が呼ばれる(途中の最大retainCountは微妙に違う)
ブロック内の
while (self.isContinue) {
は、せっかくが意味なくねってことで、
while (weak_self.isContinue) {
に変えると、同じく最後には dealloc が呼ばれるが、__weak を付けると retainCount が増え続ける。なぜに??
最大 retainCount から言うと単に __block 付けるだけでいいんじゃね
というか、このコードは循環参照の設問なのか??
>>223 ,220
>というか、このコードは循環参照の設問なのか??
ああ、スレッド内で何を参照してるのか無視したら、main で ThreadingServer インスタンスを作成しすぐ release するのだから、ThreadingServer の dealloc が呼ばれスレッドが終了するハズというのなのね。たぶん
スレッド内で参照しているのだからそれは無茶な話じゃないのかなあ。dealloc に入っているのに、他でそれのインスタンス変数(isContinue)を参照しているなんて
225 :
220 :2012/05/11(金) 23:39:28.76
>>221-224 みなさんありがとうございます。
selfは単純にミスです。
外から終了通知を投げれば確かにスレッドは終了しますが、deallocは呼ばれないんですよね・・・
なぜ__weakのはずなのにこれで破棄されないのかわかりません。
226 :
220 :2012/05/11(金) 23:45:07.46
__block __weak ThreadingServer *weak_self = self; とやってもだめなんですよね。。。 __unsafe_unretained以外で望んだ挙動ができません。
>>225 ,226
いや、それを望んではいけないってことなんだけど
dealloc に入るのは他で使用されないっていうのが大前提だと思っているのだけど
期待しているのは dealloc の中でそのインスタンスを他でまだ参照しているという前提でしょ?そのインスタンスのインスタンス変数で他をコントロールしようとしているという
それだけのコードじゃあまり無いかもしれないけど、それだと存在しないインスタンスを参照してクラッシュするのが目に見えていると思うのだけど
オーナーシップというのを理解した方がいいと思う。現在のコードの動きは全く正常であり、そうでなければ困るというものだと思うのだけど
逆に __unsafe_unretained で望んだ動きというのが綱渡り的なもの
ブロック内でそのインスタンスを直接にも間接にも参照しないようにするか、無理ならオーナーシップを理解した上での奇麗な実装を考えた方がいいと思う
>>225 >外から終了通知を投げれば確かにスレッドは終了しますが、deallocは呼ばれないんですよね
いいや、dealloc は呼ばれるよ
ああ、main で @autoreleasepool で囲っても、そこで実際に ThreadingServer が release されるわけじゃないみたいだったかな。main 内の処理をサブ関数に移してみたら。関数抜ける時には確実に release されるよ
229 :
220 :2012/05/12(土) 02:06:27.63
>>227-228 ありがとうございます。
スレッドの寿命とそれを管理するクラスの寿命を一致させるのは、
Objective-cではそんなに無理なことなんですか?
今ひとつ理解できずにいるので、
ここでいうオーナーシップがおかしい箇所を教えていただきたいです。
230 :
220 :2012/05/12(土) 02:08:54.03
続きです。
>>main で @autoreleasepool で囲っても、そこで実際に ThreadingServer が release されるわけじゃない
というのがよくわかりません。
ARCのおかげでスコープから終了するときに参照がきちんと減っているのではないんですか?
また、サブ関数にしてみましたが、結果はかわりませんでした。
ttp://codepad.org/rFMBaCua
>>229 ,230
スレッドなのだから、動作は本ちゃんと別に並列に勝手に動くよね
オーナーシップの委譲を利用すれば別に同期をとらなくても、あっちもこっちもわりと勝手にできるってことなんだけど
スレッドで何かを参照しているなら、それのオーナーシップを取った方が安全でしょ。勝手に破棄されて破棄されてしまったのを参照してしまうのを防ぐのに。それが基本だと思うけど
あなたがやりたいようにやりたいなら、オーナーシップにかかわるような __weak に拘らずに __unsafe_unretained でいいんじゃないの
[NSThread sleepForTimeInterval:3.0];
server.isContinue = NO;
[NSThread sleepForTimeInterval:0.5];
とかしてみたら
ARCの解放はコードの見た目通りではなさげ。Blocksでの解放もいまいちどこってはっきりわからんねえ(Blocksを抜けた直後に直ぐというわけではないとか)
232 :
220 :2012/05/12(土) 12:01:11.66
>> 231 どうもです。 スレッドで何か受け取り処理する場合、当然オーナーシップはとります。 そのときに__unsafe_unretainedなんて使いません。これは自分のオブジェクトに対してだけです。 受け取ったものの解放はdeallocでやるか、スレッドが終了するタイミングですればいいと思うんです。
233 :
220 :2012/05/12(土) 12:03:31.33
続きです。 >>オーナーシップの委譲を利用すれば別に同期をとらなくても、あっちもこっちもわりと勝手にできる すみませんこれがいったい何のことをさしているのかわかりません。 結局initでスレッド生成。deallocでスレッド破棄の何がいけないんでしょうか?
>>232 ,233
なんか話を拡大しているように見えるけど
__unsafe_unretained は今回のあなたのやりたいようにやるのには適しているだろうから、__weak なんて拘らなくていいってだけだよ
他もinitでのスレッド生成がダメなんて言ってないし。もう解決したんならいいんじゃないの
deallocは俺は違う方がいいと思うけど、あなたがあなたのやりたいようにやりたいなら、別にそれはどうでもいいよ。あなたのコードを私が利用するわけでもないし
もう解決したんでしょ?
235 :
220 :2012/05/12(土) 16:29:52.19
>>234 最初の疑問は全然解決していません。
結局のところ__block __weak ThreadingServer *weak_self = self;
とやってるにもかかわらず、(おそらく)スレッドのブロックがselfを保持しているせいで、
循環参照によってdeallocが呼ばれていない理由がわからないままです
>>235 だからそういうもんだって。それは循環参照でもなんでもないよ
だってBlockが目的を達成して終われり release すればインスタンスのオーナシップを持っているものが無くなり、dealloc がちゃんと呼ばれるのだもの
巷で問題とされている循環参照は全く別の話だよ。そこがオーナーシップを理解してないってことなんだけどな
あなたのやりたいことはオーナーシップ無しで済ませたいのだから、__unsafe_unretained を使えばいいこと
236 例えば performSelector: とか対象のインスタンスをそのメソッドが実行中はオーナシップを獲得して終わりには解放するでしょ iOSはそういうベースのもので、ARCもその延長線上のものだと思えなくない? あなたのやりたいことは、それとは異なることで、そういうようなためにも __unsafe_unretained があると思えなくない? __weak は __unsafe_unretained と同じ動作でなくてはならないとかあなたがそう思うならそれはもう知らないな
>>237 ×iOSは
○CocoaやiOSは
ARC は Objective-C の言語仕様の一部だけど、元々 retain/autorelease/release は Objective-C とは関係無い Framework の仕様でそれを言語仕様に取り込んだようなもんってことね
解らない解決できないだけを強行に言われ、でも自分の考えだけは頑固ってのは正直イラっとしたし、どっかで見たこともあるのでもうおしまいw
239 :
220 :2012/05/12(土) 20:46:09.79
時間がかかってしまいましたが、ようやく理解できない原因がわかりました。 __weakならばオーナーシップを獲得しないだろうと、ここを勘違いしていたところが問題でした。 あくまでもブロックはそのコピーを保持し、 そのコピー元が何であろうが関係なかったのですね。 解決です。ありがとうございました。
>>239 ARCなりCocoaやiOSの自動的なオーナーシップの獲得を尊重(それは安全のためなんだもん)して、クラスを使う外部クラスにワーカースレッドの存在を意識させないというのは、俺ならこう書くだろう
http://codepad.org/k57uJw2D 循環参照なんて関係無いよってことで Block 内では self を使う。isRun は寂しいから付けただけで意味は無い
dealloc に入るのは Block が終了した後なんだからということで dispatch_group_wait(group, DISPATCH_TIME_FOREVER); は削除(どうもこいつも怪しい)
外部クラスに提供するメソッドはワーカースレッドとのやり取りが必要で ThreadingServer に実装したいのならばそうすればいいし、
それを呼び出すメソッドを ThreadingServerForOutsideClass に書くのがめんどくさかったらメッセージフォワーディングを使えば @interface にコピるだけで済むでしょ
ということで
241 :
220 :2012/05/12(土) 21:38:56.91
>> 240 なるほど、一枚ラップしてるわけですね。 少し手間こそあれ、確かにこっちのほうが正当って感じがします。 forwardInvocation、これは知りませんでした。エレガントですね。 本当に助かりました。ありがとうございました。
242 :
220 :2012/05/12(土) 21:43:50.86
追記です。 この方法だと、dispatch_group_waitも書く必要がなく、終了待ち時間もなくなって、 とてもスマートですね。
質問させて下さい。 iPhone向けにUIScrollView を使って横スクロールをさせようとしています。 その際に1pageの横幅サイズが、iPhoneの横幅より小さい領域でスクロールをさせようとしています。 (iPhoneの横幅320 に対して、 1pageは200でスクロール) で現在はBounds横幅を200に設定してスクロールを実装しているのですが、 そうすると、Boundsの領域外では、スワイプが出来ません。 Boundsの領域外でもスワイプ出来る方法はありませんでしょうか? ちなみに、ContentInset等も試しては見たのですが、これは、ContentSizeに対する余白の設定の様ですし・・・。 何かヒントでも良いので、教えて頂けたらありがたいです。 よろしくお願いします。
244 :
仕様書無しさん :2012/05/26(土) 15:16:22.32
>>243 UIViewのhitTestで出来るよ
質問なんですが、iOSにてCoreImageの速度についてです。
バンドルから画像リソースを読み込み際に、
NSDataから直接CIImageを作成する場合と、UIImageで読み込んでからCIImageを作成する場合の速度比較をしたところ、
後者の方が早くなりました。
後者のほうが余計な処理をはさんでいるにもかかわらず、後者のほうが早いというのは、
どういう原因が考えられますか?
ttp://codepad.org/d5k9jeGe
>>245 メモリ上に画素展開されているかいないかじゃないの
UIImage -> CGImage -> CIImage -> CGImage
NSData -> CIImage -> CGImage
手順的にUIImageの方が数多くやっているように見えて実はなにもやっていなく、NSDataからCIImage はなんかやらなきゃならないだろう(bmpだとしても)という
と、てきとーにこじつけてみた
247 :
245 :2012/05/27(日) 12:55:15.99
>> 246 ありがとうございます。ひとまず実測値を信じることにします。ありがとうございました。
なにげにARCでのワーニングメッセージの中にメソッドの引数で __strong と入っているのを目にして、メソッドの引数もデフォルトでは全て __strong で
- (void)method:(__unsafe_retained id)argument;
とかできるのねと思った
で、
>>223 の __weak 時の変な動きが
- (void)method:(id)argument { NSLog... }
id argument = ...;
__weak id weakedArgument = argument;
[self method:weakedArgument];
[self method:weakedArgument];
[self method:weakedArgument];
で簡単に再現できた。__weak は変数として安易に使うのは危険、Zeroingが必要なとこでのみ使うべきということかなあ
cocos2dフレームワークに関してはどこで質問すればいいの?
専門に扱ってるスレッドはどの板にも無い。
251 :
仕様書無しさん :2012/07/12(木) 02:05:44.97
NSHTTPCookieStorageを使ってクッキーの取得とかセットをやってるんですが 端末の時計が2時間以上未来になっていると、クッキーをセットしても空になってしまうという現象が起こっています どうもクッキーのexpiresdateが端末の時計に対して過去になってることが原因ぽく expiresdateをnilで上書きするとクッキーにセットできるようになるんですが、こんなことやっちゃっていいんでしょうかね・・・? もっといい方法があるんでしょうか
いや、それは時計を正常にすればいいだけじゃないの。なんか意味あるの?
NSRunAlertPanelをcppから呼び出すために次のようなラッパーを作ったのですが wAlertReturn wAlertPanel(const char* panel_title,const char* panel_message, const char* default_buttom_word, const char* alternate_buttom_word0, const char* other_buttom_word0) { return (wAlertReturn)NSRunAlertPanel([NSString stringWithCString:panel_title encoding:NSUTF8StringEncoding], [NSString stringWithCString:panel_message encoding:NSUTF8StringEncoding], default_buttom_word?[NSString stringWithCString:default_buttom_word encoding:NSUTF8StringEncoding]:nil, alternate_buttom_word0?[NSString stringWithCString:alternate_buttom_word0 encoding:NSUTF8StringEncoding]:nil, other_buttom_word0?[NSString stringWithCString:other_buttom_word0 encoding:NSUTF8StringEncoding]:nil ); } 実際にこれを起動するとプログラムが落ちます・・・ 何がいかんのでしょうか?
>>253 NSRunLoop ありの普通の Cocoaアプリ中でcppを呼び出して、そこからここなの?
まさか、cppなアプリでいきなりここってことはないよね?
で、なんでcppなの?純粋なcppもわかるけど、mmからcppをってのが普通でcppからmまたはmmをってなんでかなー?
なんかのアプリの移植かなあ。だとしてもcppをmmにしちゃえばいいのにと
>>254 上のコードがmmで、そのヘッダが.hで、cppがそのヘッダを含んでいて呼び出しています
cppファイル自体はウィンドウズ版との共有でmmにはできないのです
>>255 ふむ、なるほど
正直、1行がすごい(見づらいw)けど、それだけだったら原因はわからないねえ。特に間違っているように見えないので
RunLoop 周りか NSAutoRelease が無いとかかなと思ったけど、それだったらどっかにはすでにあるだろうから
とりあえず、引数使っているところを @リテラル にしてテストしてみては?
>>256 >@リテラル
試しておりました
結果変わらず、ですね
>>257 じゃ、そもそも NSRunAlertPanel を呼べないってことね
ベースはCocoaアプリなんだよね?
Cocoaアプリがベースだとして、cppを介しないでmまたはmmからこれを呼んだらどうなの?
>>258 いえ、違うと思います
.pluginです
>>260 呼べないってのは NSRunAlertPanel を呼んだら問題があってクラッシュするってことね
.pluginかあ。なんなのかわからんけど
環境の問題で、
>>253 のコードを示されてもわからないと思うんだけど
とりあえず、
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
wAlertReturn result;
result = NSRunAlertPanel([NSString stringWithCString:panel_title encoding:NSUTF8StringEncoding],
[NSString stringWithCString:panel_message encoding:NSUTF8StringEncoding],
default_buttom_word?[NSString stringWithCString:default_buttom_word encoding:NSUTF8StringEncoding]:nil,
alternate_buttom_word0?[NSString stringWithCString:alternate_buttom_word0 encoding:NSUTF8StringEncoding]:nil,
other_buttom_word0?[NSString stringWithCString:other_buttom_word0 encoding:NSUTF8StringEncoding]:nil
);
[pool release];
return result;
}
かな
>>262 This function not only creates the panel; it also puts the panel onscreen and runs it using the runModalForWindow: method defined in the NSApplication class.
NSApplication 下じゃなきゃダメのように読めるけど?なんのplug-inなんだろなあ...
メインアプリのNSApplications下で動くようなものなの?
CocoaアプリじゃないNSApplicationインスタンスが無いのはNSApplicationLoad を使えば幸せになれるようななれないような、よくわからん ギブッ
>>264 すいません、でもそれもダメでした
もうちょっと自分で調べてみます、なにかわかったら伝えます
>>265 あ、と、形に拘らないのだったら CFUserNotification は制約は少ないらしい
それもそのサンプルにサンプルが入っている
ありがとうございます、結局sharedApplicationでもダメでしたが CFUserNotificationが使えたのでそちらを使うことにしました
269 :
仕様書無しさん :2012/08/03(金) 20:54:54.27
某サイトへのログイン認証をiPhoneでしたくてPOST通信で投げてログインできたのはいいんだけど、 返り値というかログイン失敗した時のサーバーからのレスポンスの取得方法がよく分からなかったから、 didReceiveData と DidFinishLoadingでどれだけのデータ量が受信されたかどうかで ログインの失敗成功を判定しようと思って、実際に出来たんだけど、この方法って邪道だよね? ログインに成功した時と失敗した時のデータ量には大きな差があるから確実なんだけどスマートじゃないなと思って…
エラーのと何を返すってのはその某サイトのサーバサイドアプリの実装次第だからねえ。公開APIが無いのだったらしょうがないね データ量で判断って怪しいから、返ってくるだろうエラーテキストででもっても、変えられたらだしねえ
>>270 ですよねー
まぁ趣味で作ってるもんだからいいか
272 :
仕様書無しさん :2012/08/30(木) 22:23:20.19
275 :
272 :2012/08/31(金) 11:24:07.01
>>273 >ってあるから、64bit対応しようとして放棄or放置状態なのかなと
>>274 >32bitバイナリを作るのは、コンパイラフラグに -m32 らしい
ありがとうございます。すみません。
276 :
(・ω・`) :2012/10/19(金) 19:36:36.77
iOSアプリを作りたいと考えているんですがオブジェクトcをいきなり学ぶべきですか? c言語から入った方が良いんでしょうか?スレ違いなら何処のスレが良いか教えて頂けますか? 個人学習に適した良書が有りましたら教えて頂けますか。 (java&Androidマスター済みデス)
278 :
仕様書無しさん :2012/10/20(土) 15:18:48.35
279 :
仕様書無しさん :2012/10/22(月) 12:05:13.58
>>278 私も悩んだ
仕様変更だろうから、あきらめた
280 :
仕様書無しさん :2012/10/22(月) 18:26:24.33
>>279 なんか変わったのは間違いないんだろうけどねー
資料漁るのはもう疲れたよ...
281 :
仕様書無しさん :2012/10/28(日) 01:51:18.38
xcodeでogreのサンプルをビルドすると make -f /root/OgreSDK/CMakeScripts/ReRunCMake.make make[1]: *** No rule to make target `/Applications/CMake 2.8-8.app/Contents/share/cmake-2.8/Modules/CMakeCCompiler.cmake.in', needed by `CMakeFiles/cmake.check_cache'. Stop. make: *** [/root/OgreSDK/CMakeFiles/ZERO_CHECK] Error 2 Command /bin/sh failed with exit code 2 ってなります、どうすればいいですか
282 :
仕様書無しさん :2012/10/29(月) 20:03:24.43
手につかない
283 :
仕様書無しさん :2012/10/30(火) 10:13:26.20
>>278 一番最後のサンプルプロジェクト落として開いてみたけど(プロジェクトはコンバートされた)、バインディング先の表記が
<WebView:0x115aaxxxx>
みたいに表示されていたけど、普通にコンパイル&ランできた
ので、コンバート後もWebViewのバインディングの仕組み自体は生きているみたいだから
内部的にはバインディング出来るようになっているみたいだけど、
バインド先を選び直したら、選択肢から消え去ってた
まぁ、そういうことなんだろうね
Xcode4.2で、ダウンロードしたソースコードをビルドしたところ、 以下の★で、 Unexpected '@' in programと エラーが出てしまいます。新しい文法だと思うのですが、 もうしわけございません、識者の方、解消法がわかりませんか? ====== NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO]; NSArray *sortDescriptors = @[sortDescriptor]; //★ ======
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; //★
GCC でコンパイルしようとしてる?
>>285 ありがとうございます、ビルドできました。
[self performSelector:@selector(foo)]; (respondsToSelector:は呼んでいない) というコードがあったのですが、 [self foo]; としない理由は何が考えられますか?
@interface NSObect(Hoge) - foo; @end とかが無いと警告がでるから
>>290 なるほどー。
ただ自クラスにメソッドが定義されてるのにperformSelectorで呼んでたので何か意図があるのではと思った次第です。
褒めてるのか貶してるのか判断が難しいなw
ヘッダファイルについて調べているのですが file:///System/Library/Frameworks/Foundation.framework/Headers/NSObject.h において @protocol や @interface で宣言されたメソッドが実装(定義)されているファイルというのは どこにありますか?
@protocol は、ふつーはヘッダにそれがあるだけで実装はてめーでしろやっていう目的のものだと思うけど 「実装(定義)されているファイル」って意味わからんけど、@interfaceの場合のクラスの実態は、 file:///System/Library/Frameworks/Foundation.framework/Foundation が指す先にまとめられているであろう 自分で Framework 作ってみればわかるよ
>>295 お返事ありがとうございます。
例えば、今私が書いているコードから抜粋すると
@interface ClassYear : NSObject
- (BOOL) is2013;
@end
の様な @interface コンパイラディレクティブをつくったとき、
@implementation ClassYear
- (BOOL) is2013 {
BOOL check = NO;
if (iv == 2013) check = YES;
return check;
}
@end
みたいな @implementation コンパイラディレクティブを書くとおもうのですが
NSObject.h の @protocol や @interface に対応する @implementation が見たいのです。
なんで見たいの?ライブラリって知っている? だから、@protocol の実態は無いよw そんな気にする理由がわからないところは気にしてないで、もっと気にして勉強しなければならないことがあるよ
299 :
294 :2013/01/31(木) 17:25:12.75
ヘッダファイルが読み込んでいるファイルがライブラリ ... なのですが
昨日までいまひとつ理解できていませんでした。
>>295 で教えて頂いた
> file:///System/Library/Frameworks/Foundation.framework/Foundation
> が指す先にまとめられているであろう
の意味がやっと理解できました。
/System/Library/Frameworks/Foundation.framework/Foundation
はエイリアス、オリジナルのファイルは
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
拡張子のない UNIX 実行ファイルと表示されるこのファイルこそがライブラリファイルなのですね。
C というフォルダに入ってるこのファイルはおそらくバイナリファイルなのだとおもいます。
(日本語4種 + UTF-8 の文字コードで読めなかったため)
時間があれば内容を読み取ることができるのか確認してみたいとおもいます。
>>297 さんのレスがものすごくヒントになりました。ありがとうございました。
300 :
294 :2013/01/31(木) 17:26:05.89
@protocol についてですが、例えば NSObject.h において
@protocol NSCopying
- (id)copyWithZone:(NSZone *)zone;
@end
とあり、NSArray.h において
@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration>
- (NSUInteger)count;
- (id)objectAtIndex:(NSUInteger)index;
@end
とあります。この記述があるからこそ NSArray.h を読み込む Foundation.h を読み込んだ時に
copyWithZone: メソッドがつかえるのだとおもいます。
そういうところを追いたかったのです。
・C を学んでいた頃からヘッダファイルが読み込んでいるライブラリファイルがどれなのか理解できていなかった。
・使用しているテキストに間違いがあるとおもい、それの確認に。
・super と self がなんであるか?(PDF にあるキーワードという言葉ではなしに)が
よく分からなかったので、super と self を定義している部分があればそれを見てみたかったのです。
Objective-C には仕様書がないので、あとは実装されている部分(@implementation)を見るしかないかなぁ、とおもいました。
今日ようやくカテゴリやテキスト出力まで学びましたが
使用しているテキストがあまりに分かりづらいので今は
http://libro.tuyano.com/index2?id=524006 の記事で学習しています。
>>298 さんに教えて頂いたページも参考にさせて頂きます。
大変実のある一日になりました。ありがとうございました。
>>299 ,300
>ヘッダファイルが読み込んでいるファイルがライブラリ
>C を学んでいた頃からヘッダファイルが読み込んでいるライブラリファイルがどれなのか理解できていなかった
今も理解できていないようだけど、コンパイラが使うのがヘッダファイル、リンカが使うのがライブラリファイル
ヘッダファイルが読み込んでいるライブラリファイルという概念は存在しない。コンパイラは単に目印を付けるだけ、リンカは目印に該当するのをライブラリ中から拾い出すというのは、Objective-Cでも同じで何も変わらない
302 :
294 :2013/01/31(木) 18:05:09.29
ああ、ありがとうございます。確かに プリプロセス・コンパイル・リンクの部分はまだほとんど理解していません。 出直してきます。
当然だけど、アップル自体はフレームワークのソース、とりわけアプリに近い部分は 原則非公開で、GNUSTEPやCocotronのような互換環境の見て推測するしかない。 ただ、アップルのドキュメントは正確だし、情報は比較的多いしのでソースを調べる 必要性って無いと思うが。でなければあんだけ多くのIOSアプリなんて出回らない。 294はなにからなにまで知らないと気が済まない典型的な組み込み系の人っぽいが、 いろんなクラスの役割を早く理解して組み合わせる、オブジェクト指向プログラミングの 勉強をしっかりしたやった方がいいと思う。
294 は実の所まともに Obj-C のプログラム組んだことがない人物に見えるが。
なんか資格試験だけには強そうだけどなw
素朴な疑問ですが、+initializeはどういう場面で使うものなのでしょう? 定石みたいなものはありますか
Singletonはここで作った方がいいというのを見たことはある。マルチスレッドを考えるととか 定石は+share...とか+default...のメソッド内で無かったら作るの方なんだろうけど
文字列定数の@"〜"って、retainつきのNSString*プロパティーに代入しても問題なさそうだけど、 リファレンスカウンタの動きとかどうなってるんでしょうか?
>>308 retainCountは最大値で固定
特別な領域に確保される
生存期間は起動時から終了まで
310 :
308 :2013/02/26(火) 15:14:20.82
引数のないメソッドは、下記2通りの方法で呼べますが、 どんな時にどちらの表記を使うべきかの規約はありますか? 慣例的なものでも構いません [クラス名 メソッド名] クラス名.メソッド名
>>311 プロパティ以外はドット構文禁止!
だそうです
>>311 すべてメッセージ式(上の方)に統一した方がいいよ。
プロパティはドット記法、それ以外はメッセージ式と完全に分けられるならいいんだけど、プロパティの操作でも引数が増えた途端メッセージ式にしないといけないことがあって、統一性が取れない。
例えばUITableViewCellのselectedとか。animatedを指定してセットするときはドット記法使えない。
314 :
311 :2013/03/05(火) 09:20:06.30
>>312-313 ありがとうございます
プロパティって引数取れるんですね、知りませんでした
今後は全てメッセージ式に統一しようと思います
>>314 プロパティに引数とかないよ
>>313 は -setSelected:animated:を使わないとアニメーションしないといってるだけだよ
[質問] カテゴリ化されたメソッドの明示的な呼び出し方 iOSの起動時にapplication: didFinishLaunchingWithOptionsが呼び出されますが、 このときに application: didReceiveRemoteNotification を明示的に呼び出したいのですが NSDictionary *remoteNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; [self didReceiveRemoteNotification: remoteNotif]; [application didReceiveRemoteNotification: remoteNotif]; のいずれも@interface AppDelegate/UIApplication にselectorが定義されていないというエラーになります。 どのように呼び出せばいいのでしょうか。
>>316 [self application:[UIApplication sharedApplication] didReceiveRemoteNotification:remoteNotif];
じゃなくてえ、
- (void)didReceiveRemoteNotification: didReceiveRemoteNotification:(NSDictionary *)userInfo;
ちゅうメソッド作って、そこで実作業して、
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
からも、それを呼び出すとか
まあ好みだけど
>>317 >- (void)didReceiveRemoteNotification: didReceiveRemoteNotification:(NSDictionary *)userInfo;
間違えた
- (void)didReceiveRemoteNotification:(NSDictionary *)userInfo;
>>317 どうもありがとうございます。
>- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
は定義済みです。
ところでこのメソッド定義って「application」が2回出てくるけどこの2つのapplicationはどう違うんでしょう?
>>319 うん。それを呼び出したいってのだから、そうだろけど
[self application:[UIApplication sharedApplication] didReceiveRemoteNotification:remoteNotif];
は
[self application:application didReceiveRemoteNotification:remoteNotif];
でよかったなあ。そういえば application:didFinishLaunchingWithOptions: 内でという話しだったなと
メソッド名(セレクタ名)の一部と単なる引数名って...
>>319 > 2つのapplication
セレクタの一部と仮引数のこと言ってんの? いやまさかね
>>321 後日教本で把握した元の質問者だけど、
識別子が複数の単語から形成されるのはプログラミング言語として結構珍しいんじゃないかと思う。
この場合はapplication:didReceiveRemoteNotification という名称のセレクタ(メソッド)になるわけで。
ところで、objective-cのセレクタの第1引数にキーワード名が付けられない理由はなぜだろう?
別に無くてもいいんじゃねってのはCocoa/IOSの命名からわかるだろう
あと、セレクタ名が 引数無し method 引数付き method argument: method argument1:argument2: ってなるんじゃね だったら methodArgument: methodArgument1:methodArgument2: と変わらんだろう。 んなこまけーとこ気にすんなっ。俺やお前より賢い人が考えたものだと受け入れろw
再び考えてみたら
[instance method argument1:hoge argument2:hogehoge];
って気持ち悪いじゃんっ。現在のに見慣れているからだけでなく絶対的にw
>>324 >methodArgument1:methodArgument2:
書きたかったのは
methodArgument1:argument2:
でした
326 :
仕様書無しさん :2013/03/24(日) 10:29:56.43
※本投稿の拡散歓迎です。 派遣労働者のパワハラ・セクハラ対応策について 下請け労働者、業務委託、派遣労働者は契約期間が短期という制約があり、契約更新拒否をちらつかせた不当な労働強要の実態があります。 雇用形態における壁・差別は法律に直接的規程はなくとも認められているわけではありません。 「正社員の有期雇用労働者に対する優先的地位乱用」による「侮辱罪」、「脅迫罪」、「強要罪」、「傷害罪」、条例違反で刑事告訴できるが、 本稿では刑法ではなく労基法関連の対策に焦点をあてます。 労働基準法第5条(強制労働の禁止)(1年以上10年以下の懲役又は20万円以上300万円以下の罰金) ■精神の自由を不当に拘束する手段によつて、労働者の意思に反して労働を強制してはならない。 例:正規労働者(同僚)による残業の強制。仕事の期限が遅滞した際に「繰り返し」残業を示唆する。 例:派遣の仕事の回し方の裁量を正社員が決めるなどと示唆する。 例:飲み会、昼食、たばこの同伴を強要する。 労働基準法3条 (六箇月以下の懲役又は三十万円以下の罰金) ■社会的身分を理由として労働条件について差別的取扱をしてはならない。 例:社内制度に明示されていない指揮命令系統が正社員と派遣社員に存在する。 派遣社員も正社員と同様に社内制度に準じるという契約上、業務で平等に取り扱う必要がある。 例:社内制度上の上司でもない正社員が命令をしたり、仕事上の指導権・裁量・許可権限をもつこと 派遣契約の内容にそうした区別を制度化するような客観的な証拠がなければ派遣社員側に有利といえる。 例:派遣社員に業務上における裁量を一切与えず、非管理職の正社員が許可を与える 労基法3、5条については、経営責任も問えますので、刑事告訴できる相手は以下のとおり。 派遣先 当該正社員 派遣先 指揮命令者 派遣元・派遣先 代表取締役 刑事告訴(告発)の行い方ですが、内容証明郵便で告訴状(告発状)を地方検察の直告班に郵送してください。
昔、17年くらいまえかなー。 appleのdeve用CDに音楽トラックが入ってる月があってさ、女性ボーカルの曲。 誰かタイトルしらない?
328 :
仕様書無しさん :2013/04/24(水) 10:41:58.24
>プロトコルを採用しているクラスは、そのプロトコルで宣言 されているメソッドを必ず実装しなければなりません それは以前の話し 今は、@required と @optional が指定でき、実際に @optional なのも多い。もちろん、@optional なプロトコルメソッドは任意 プロトコルなんだから「採用」よりも「準拠」じゃねと思うけど、それはまあいいや
330 :
仕様書無しさん :2013/05/07(火) 17:08:51.52
>>311 これしばらく調子乗ってノリノリでつかってみたけど、あとでクソ面倒なことに気付いたから[[Hoge alloc] init]の形で古典的に書いてるよ。
最初に定義された記法だから破綻がない。
333 :
仕様書無しさん :2013/05/24(金) 10:37:49.48
流行はalloc initなんて書かないで newするらしいじゃん
>>333 ARCでretain書かなくなったからnewでもいい、ってことだが
googleのobjCガイドラインも、Apple Cocoaガイドラインもalloc initを推奨してる
それに稀にinitを別のシグネチャに変えたりするときに、newだとめんどくさい
ARCについて質問です。 ARCで、イニシャライザでFlyweightパターンなどの都合でレシーバ以外のオブジェクトを返した場合、 センダ側ではalloc→initとやっている訳ですから、releaseすることなくそのオブジェクトへのポインタがセンダ側で失われメモリリークしますよね かといってイニシャライザ側の実装ファイルをARC解除して、レシーバ以外のオブジェクトを返すときにイニシャライザでreleaseしようとすると、 センダがもしalloc→initとやらずに、alloc→autorelease→initとかやっていたら、二重にreleaseされてしまう恐れがありますよね… Flyweightパターンを適用する場合にはinitを封印して常にクラスメソッドを使うようにさせなければならないのでしょうか。
>>335 @implementation FactoryClass
- (id)init
{
NSObject *object = [[NSObject alloc] init];
return object;
}
- (void)dealloc
{
NSLog( @"dealloc %@", self );
}
@end
_object = [[FactoryClass alloc] init];
NSLog( @"%@", _object );
って、ちょっとナンだかのでも、
_object = [[FactoryClass alloc] init];
直後(?)に、FactoryClass のインスタンスは解放される
思っているよりもかなり賢いぜよ
ARC切ってstatic analyser使ったら賢すぎだわ 一度好きに書いてみてアナライザ通したら指摘してくるよ
Analyser賢いよな。結構ビックリするような瑕疵を見つけてくる。
.
Cocoa自体は10.9でも激変なしかな。 iOSはGUI激変でデザイナー涙目だけど
10.10でiOSと統合っぽいな。区切りもいいしw。
Sprite Kitは使いやすそうだね
>>341 iOS 7で反応見てからMacをiOSに寄せるアプローチとみた
344 :
仕様書無しさん :2013/06/15(土) 09:12:11.65
適当なスレが見つからなくてスレ違いだったらごめんなさい。 山ライオンぐらいから厳しくなってきたのでappファイルの署名をしたいとDev契約結んで キーチューンアクセスとDevセンターからcerを生成してターミナルからコマンドで署名しても CSSMERR_TP_TRUSTEDというエラーで署名できなくて困っています。 キーチューンアクセスを調べたらDevセンターからDLしたAppleの署名付きcerにも 関わらず、「この証明書は不明な機関によって署名されています」となっていました...orz Appleからもらったのに不明な機関とはどういうことでしょう。。?これはどうしたらよいのでしょうか。 ちなみに他の署名書に 「Apple Worldwide Developer Relations ~」はあります。
ここもいいけど、Mac板のほうが人多いかも 俺はよくわかんない、ごめんね
NSDictionaryからクラスに、 キーと名前が一致するプロパティに値を移してくれるようなメソッドってあります? まぁセレクタとforで数行じゃんって話ではありますが…
ない。 うん、セレクタてかKVCで数行で、これもわかっていると思うがカテゴリで追加すればいいことだからな
KVC下手に使うとあっという間に訳わからんことになるけどね
forは使わないけどforeachは使うとかだったら腹痛
俺の使っているのにはforeachなんて語は無いな。さすがそんなので腹痛になるだけある
foreachとdowhileは害
コードも張らない奴に用は無い forで回して突っ込んで置けば良いと俺は思うよ
こういうヤツが権力を持つとアホなコーディング規約作りそうというの伺える
>>355 デメリットを理解せず失敗ばかりするアホ
01しかない職業病なのか元々馬鹿なのかわからんヤツだな まあ元々賢くないから職業病wになるのだろうから同じか
>>354 って言うから書いてみた
@implementation NSDictionary (AddOn)
- (void)expandToPropertyForObject:(NSObject *)object
{
for(NSString *key in self.allKeys){
if([key isKindOfClass:[NSString class]])
continue;
@try{
[object setValue:[self objectForKey:key] forKey:key];
}
@catch(NSException *e){
if([e.name isEqualToString:@"NSUnknownKeyException"])
continuel;
@throw e;
}
}
}
@end
セレクタ使う場合うはset大文字なんだろうけど、NSStringの便利メソッドってあったけ?
ああ、 if(![key isKindOfClass:[NSString class]]) と continue; だな。まあいいや
すみません KVOについてなんですが クラスAでプロパティabstractObjectsをKVC準拠にし、 クラスAのサブクラスBでプロパティabstractObjectsの言い換え(エイリアス)としてプロパティconcreteObjectsを追加します concreteObjectsとabstractObjectsの名前を変えただけで中身は同じなので、サブクラス側でKVCを実装しなおすのはやりたくないのですが %2b keyPathsForValuesAffectingValueForConcreteObjects で[NSSet setWithObject:@"abstractObjects"]を返しておけばいいのですかね?
>>363 >クラスAのサブクラスBでプロパティabstractObjectsの言い換え(エイリアス)としてプロパティconcreteObjectsを追加します
そんなことする意味あるの?
NSUserDefaultsで保存したデータをオーガナイザ等から書き換えることはできますか? デバッグ担当から、デバッグ用に内部データ書き換え画面を作ってっていわれて困りんぐ。
ステータスバーにセットしたメニューの更新の仕方を教えてください。 ファイルをダウンロードし、そのダウンロード進行率をメニューの項目として表示しようと思い、以下のようなメソッドを実装しました。NSURLDownload のデリゲートメソッドからダウンロードステータスを受信する度にこのメソッドが呼ばれます。 -(void)setDownloadStatus:(NSArray *)status { NSInteger tag = 0; NSString *title; NSString *percentage; if ([status count] >= 1) tag = [[status objectAtIndex:0] intValue]; if ([status count] >= 2) title = [status objectAtIndex:1]; if ([status count] >= 3) percentage = [status objectAtIndex:2]; if ([systemStatusBarMenu itemWithTag:tag]) { NSMenuItem *sbMenuItem; sbMenuItem = [systemStatusBarMenu itemWithTag:tag]; [sbMenuItem setTitle:[[[title stringByAppendingString:@" : "] stringByAppendingString:percentage] stringByAppendingString:@"%"]]; } } メニューが閉じている間は問題ないようですが、自分がメニューを開いている途中は上手く更新されません。また、メニューを開いた状態でしばらくすると Xcode がエラーを吐きます。(lldb) そもそもメニューの項目を更新する方法として、このメソッドの書き方は正しいのでしょうか。 そしてメニューを開いている状態でも上手く更新されるような方法を教えてください。
367 :
仕様書無しさん :2013/07/14(日) NY:AN:NY.AN
すみません、Objective-Cの絵本って本を読んでてどうしても納得出来ないところがあるのですが… NSArray *ary; ary = [NSArray arraywithObjects:@"ABC",@"DEF",@"GHI",nil]; と定義した時、aryでobjectAtIndexをしたい時は NSString *str [ary objectAtIndex:1]; ですよね? 本ではNSString *str [array objectAtIndex:1];ってなってたんですけど、誤りだと思うのです。。 あと上記の定義で [ary replaceObjectAtIndex:1 withObject:@"DDD"]とした場合は「@"ABC",@"DDD",@"GHI"」になりますよね? 本では「@"GHI”,@"DDD",@"ABC"」という風にDDDが置き換わった上に前後のABCとGHIも入れ替わってて意味わかんないです、、
>>367 納得する必要は一切無い
自分でそのコード動かして見れば良いよ
369 :
仕様書無しさん :2013/07/15(月) NY:AN:NY.AN
>>368 そうですよね…
まだ書けるほど技術ないのですが、力がつくまで謎は胸にしまっておきます。
>>396 いやいやいやいや
実際そこに書いてあるのを書き写して動かして見ろよ
それもやらずに本だけ読んでも何の力もつかないぞ
精々我慢して本を読み切る能力くらいだ
371 :
仕様書無しさん :2013/07/15(月) NY:AN:NY.AN
>>370 今やってみたのですが、1番目の謎は解明できた(やっぱり本が間違っていた)のですが、
2番目はうまく処理してくれませんでした。。
NSArrayではなく、NSMutableArrayにしてやってみたのですがやっぱりエラーになって、、
もしかしてallocとかしないと配列の番号を指定してもエラーになるという事でしょうか?
372 :
仕様書無しさん :2013/07/15(月) NY:AN:NY.AN
ちなみにエラー内容は 「thread1:signal SIGABRT」です。
クラッシュはだいたいにおいてSIGABRTにしかならない ログに本当の原因が出ているだろう。だいたいにおいて NSMutableArrayにするのは正解
374 :
仕様書無しさん :2013/07/16(火) NY:AN:NY.AN
>>373 クラッシュ…?
なんか沢山意味不明な文字が書いてありますが、
[ary replaceObjectAtIndex:1 WithObject:@"DDD"]がunrecognizedってなってます。
戻り値もvoidなので書き方自体は間違ってないと思ったのですが…
お手上げです。。
unrecognized selectorとかだったらaryにreplaceObjectAtIndex:withObject:が実装されてないことになる。 aryが別のオブジェクトになってたり、メソッド名をうち間違えてたりするんじゃない?
NSMutableArray *ary = (NSMutableArray *)[NSArray arraywithObjects:@"ABC",@"DEF",@"GHI",nil]; か NSArray *ary; ary = [NSArray arraywithObjects:@"ABC",@"DEF",@"GHI",nil]; NSMutableArray *mutableAry = (NSMutableArray *)ary; とでもしているんだろ
377 :
仕様書無しさん :2013/07/17(水) NY:AN:NY.AN
Viewの座標変換について教えてください。 A<-B<-C<-D (Aが親) の順にUIViewが重なっているとして、AにおけるDのframe.originの値をとりたいです。 [DView convertPoint:DView.frame.origin fromView:AView]; [DView convertPoint:DView.frame.origin toView:AView]; とか試してみたのですが、正しい値がとれている感じがしません。 @上記のやり方であってますか? AViewに階層が複数ある場合でも、「AViewにおける座標」や「Bにおける座標」 のように各階層ごとの座標を取得できるものなのでしょうか?
378 :
仕様書無しさん :2013/07/17(水) NY:AN:NY.AN
>>375 >>376 ありがとうございます!出来ました!
NSMutableArray *ary;
ary = [NSMutableArray arrayWithObjects:@"ABC",@"DEF",@"GHI",nil];
のところが
NSMutableArray *ary;
ary = [NSArray arrayWithObjects:@"ABC",@"DEF",@"GHI",nil];
ってました…。本がこのような記載になっていたため、気づきませんでした。
思わぬところにも誤植があったみたいです
こんなにたくさん誤植があると、ちょっと信じられなくなってきました…
>>377 @あってません。frameとboundsの違いを理解しよう
Aもちろん、できる
[CView convertPoint:DView.frame.origin toView:AView];
か
[DView convertPoint:DView.bounds.origin toView:AView];
か
[AView convertPoint:DView.frame.origin fromView:CView];
か
[AView convertPoint:DView.bounds.origin fromView:DView];
だろうな
iOSは次回からは
>>379 で。ここはCocoa
[CView convertPoint:DView.frame.origin toView:AView]; よりも [DView.superview convertPoint:DView.frame.origin toView:AView]; [AView convertPoint:DView.frame.origin fromView:CView]; よりも [AView convertPoint:DView.frame.origin fromView:DView.superview]; の方がよかったか
382 :
仕様書無しさん :2013/07/20(土) NY:AN:NY.AN
Objective-Cにてプログラムを始めた者です。 解説本にサンプルとして書かれた、以下コードを別のコードに変えて実行すると、 「Thread 1:EXC_BAD_ACCESS〜 」のエラーとなります。 (※同じ動作を期待したのですが・・・・) 正常に動作するサンプルコード → NSLocale *jaLocale; jaLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"]; 変更するとエラーとなったコード → NSLocale *jaLocale; jaLocale = [NSLocale alloc]; jaLocale = [jaLocale initWithLocaleIdentifier:@"ja_JP"]; なぜエラーになってしまうのか、どなたか教えて頂きたく書き込みいたしました。 よろしくお願い致します。
NSLocale 内で、ちょっと変わったことをやっているか、ARCのなんかの対応を怠っているかじゃね 特にallocとinitを分けてもObjective-C的に間違いではないが、極めて稀な場合を除いてそんなことする意味が全く無いので、するやつあいねえだろと想定してなかったとかじゃね ARC無しだと同じ動作を期待したように動くよ 他のクラスでARC有りでも期待したように動くのもある
384 :
仕様書無しさん :2013/07/21(日) NY:AN:NY.AN
NSAutoreleasepool とARCって、実際どっちがいいんでしょう?
善し悪しの判断基準は何なのか
386 :
仕様書無しさん :2013/07/22(月) NY:AN:NY.AN
扱いやすさ?
細かいツッコミをしない優しい人らだなあ
自動解放プールをARCと同様のメモリ自動管理システムだと勘違いしている奴はたまにみる
389 :
仕様書無しさん :2013/07/23(火) NY:AN:NY.AN
えっ違うんですか? もしよろしければ、その違いを…
ARCにも autorelease pool は存在する。利用するその利点がうっすーくなっているけど ARCじゃないの(MRC) retain/release/autoreleaseをプログラマが適所に書く ARC retain/release/autoreleaseをコンパイラが勝手に適所に挿入してくれる。おまけとして、weakなんて二次的な変数を安全にしてくれる(指しているインンスタンスが無くなるとnilになる) MRC 「Manual」 Reference Counting ARC「Automatic」 Reference Counting というのは、Webにごろごろ転がっているだろ
391 :
仕様書無しさん :2013/07/24(水) NY:AN:NY.AN
わかりやすいです‼ ありがとうございます( ; ; )
GTMHTTPFetcher使ってphpのjsonにデータ渡してmysqlに登録する処理をしていて、 特定のデータの時だけ、テーブルに登録した画像のバイナリファイルが欠損するのですが、 何か原因パッと思い浮かばないでしょうか? objective-cでデータ渡すまでのバイナリは正しくて、phpで受けた時には欠損してるのですが、その間になにが起きてるのかよく分からなくて、 欠損するデータができる場合もパターンがあるのですが、100%同じ欠損を再現するのでネットワークとかハードスペックの問題ではないと思ってます。
Cocoaで現在マウントされてるメディア名(/Volumes/***)を取得するには NSArray* arr = [[NSWorkspace sharedWorkspace] mountedRemovableMedia]; を使いますが、dfコマンドで表示されるようなFilesystem名(/dev/disk***)を取得するには どうすればいいのでしょうか? よろしくお願いします。
>>393 #import <sys/mount.h>
struct statfs *mountBuffer;
int numElements;
if( (numElements = getmntinfo( &mountBuffer, MNT_NOWAIT )) > 0 ){
for( int idx=0 ; idx < numElements ; idx++ ){
NSLog( @"%s on %s", mountBuffer[idx].f_mntfromname, mountBuffer[idx].f_mntonname );
}
}
>>394 取得できました、ありがとうございます。
396 :
仕様書無しさん :2013/09/21(土) 12:19:29.61
Dictionary.appに追加出来るオンライン辞書(Weblio)を作ってみた、なんてやついる?
397 :
仕様書無しさん :2013/09/22(日) 22:36:09.14
xcodeにてobjective-cを勉強中の者です。 「Xcode4ではじめるObjective-cプログラミング」という書籍の内容を進めているのですが、 以下の部分について、方法がわからず困っております。 ------------------- @あらかじめ、スーパークラスとなるPersonクラスをプロジェクトに追加しておきます。 A「File」メニューの「New」→「New File」を選択し、テンプレートを選択するダイアログを表示します。 B「Choose a template for your new file」画面で、左側のグループから「Mac OS X」→「Cocoa」を選択します。右側にグループに属するテンプレートの一覧が表示されるので「Objective-C class」を選択します。 C次の画面では「Class」でクラス名として「ClubMember」を指定します。「Subclass of」で継承元となる「Person」を選択します。 D次の画面で保存先のフォルダを選択し「Create」ボタンをクリックします。 E以上で、「ClubMember.h」と「ClubMember.m」のひな形がプロジェクトに追加されます。インターフェースセクションである「ClubMember.h」を開いて、Person.hがインポートされていること、およびスーパークラスが「Person」になっていることを確認してください。 --------------------------- 環境はOS X でバージョンが10,8,5、Xcodeのバージョンが4.6.3です。 上記部分までのレッスンで、自作クラス作成がありPersonクラス(Person.h、Person.m)は作成済みです。 その流れの中、上記@の「Personクラスをプロジェクトに追加しておきます」の方法がわかりません。 よって、Cの[「Person」を選択します]の部分でスーパークラスの選択に「Person」クラスは当然ありません。 基本的な事で恥ずかしいのですが、スーパークラス候補に自作クラスを追加する@の部分の方法をご教授頂けませんでしょうか。 どなたかよろしくお願いいたします。
.hと.mをXcodeの左ペインにドラッグして、Copy Itemsとadd to targetsにチェック。
399 :
仕様書無しさん :2013/10/07(月) 11:48:04.93
質問です。 写真等のUIImageの上に、メモとしてUIImageを置き、その上に落書き等をできるようにしています。 しかし、消しゴムの役割を持つ機能が実装できずに滞っています。 検索しても、白キャンパス前提の、白で塗りつぶして擬似的に消したように見せる状態にすることしか見つけられませんでした。 また、元画像から消しゴムの範囲をコピーして貼付ける手法をとっていますが、メモ部分だけを取り出したい時、 現状では当然ながら消しゴムでこすった部分だけ、メモに元画像が映り込んでしまいうまく使えません。 どのようにして、Strokeした部分を透明に戻すことができますでしょうか。 よろしくお願い致します。
400 :
仕様書無しさん :2013/10/07(月) 11:52:49.21
すいません。誰かにきこうとすると頭が冴えるもので、 書き込み直後、思いついたものを試したところ、解決しました。 CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeClear);
あるアプリが、「Dockに追加」された事の通知を別のアプリでうけとりたいのですが、何か方法はあるのでしょうか。
いやそんな通知は無いだろうというのが沈黙なんだろう ~/Library/Preferences/com.apple.dock.plist をポーリングしてみるとか
>>403 そうなんですかね、、
>>~/Library/Preferences/com.apple.dock.plist
をポーリングしてみるとか
ちなみに、killall Dockしないと追加内容は、com.apple.dock.plistに反映されない。
追加を検知して、killall Dockさせたいのですが。あきらめます。
>>404 >>ちなみに、killall Dockしないと追加内容は、com.apple.dock.plistに反映されない。
これ、間違ってましたすいません
カテゴリのクラスエクステンションを行うのは正しくないのでしょうか? UIView+addition.m #import "UIView+addition.h" @interface UIView( addition ) -(void) additionalMethod; @end @implementation UIView( addition ) -(void) additionalMethod{ } @end このような記述をすると、interface部分で "Duplicate definition of category 'addition' on interface 'UIView' " というワーニングが出ます。 UIView+addition.h側にも@interface(addition)部があるのが原因ですが、 これを@interface()に変えると、ヘッダ側で宣言したメソッドの実行部に "Category is implementing a method which will also be implemented by its primary class" のワーニングが出ます。 エラーではなく動作に問題はないのですが、カテゴリとエクステンションを同時に行う際の正しい書式をご存知の方、ご指導お願いします。
>>406 UIViewなどの既存のクラスに無名カテゴリを追加するのは良くないと思う。
プライベートなメソッドを追加するだけなら、今は@interfaceで宣言せずに@implementationに実装だけ書けるよ。
>>406 @interface(addition) を書くのはUIView+addition.h だけでいい。
UIView+addition.m には要らない。二ヶ所にあるから怒られてる。
>>407 >>408 なるほど、プライベートメソッドを前方宣言しないと確かにワーニングが出ませんが、
”正しい”書き方ではないのだと思っていました。
今はプライベートメソッドは宣言しなくてもいいんですね。
ありがとうございます。
>>409 コンパイラが賢くなったからね。ここ数年のObjCの進化は凄まじいものがあるから、いっぺんおさらいするといいよ。
質問があります。 iphone5sになってからデフォルトのカメラアプリが120fpsのスロー動画を撮影できるようになったと思います。 それを用いてアプリを作りたいのですが、これはAVFoundationのフレームワーウで実装できるものなのでしょうか。 activeVideoMinFrameDurationプロパティなどの記述を見つけはしたので、調べる方向性は間違っていないと思いたいのですが・・・
Cocoa != iOS
441、書き込んでから気づきました・・・すみません
そもそもプログラマー板はプログラマーという変な生き物の生態について論じる所なので、プログラミングの質問をするのが間違い。 Mac OS XやiOSプログラミングの本スレは新Mac板にあるし、それ以外のプログラミングの質問はふつープログラム技術板でするもの。
なにをいまさら。初期からすでにそんなお題目はお題目でしかないだろ
416 :
仕様書無しさん :2013/12/19(木) 23:31:43.63
教えてください。 NSLog(@"message:%@",str); NSLog(@"%@",str); ってどう違うんですか?
>>416 実際にログを出してみて違いが解らなかったの?
出力されるログに"message:"がつくかどうか
418 :
仕様書無しさん :2013/12/20(金) 00:13:30.68
すみません。勘違いでした
419 :
仕様書無しさん :2013/12/28(土) 12:44:43.78
あるクラスの中で使う列挙型を定義したいのですが定義場所はどこが一般的ですか? ・ヘッダファイルのインスタンス変数定義領域 ・ヘッダファイルの@interfaceの前 どこなんでしょうか
>>419 インスタンス変数定義域でenumなんか書けねーよ
ふつうは@interfaceよりも前(C++11により、前方宣言して後ろで定義することも可能だ)、
クラス内だけで使いたいのなら、実装ファイルの@implementationとかの前にでも書けばいい
421 :
仕様書無しさん :2013/12/28(土) 13:03:09.60
422 :
仕様書無しさん :2014/01/01(水) 16:07:58.79
親クラスHumanで initWithName という指定イニシャライザがあります。 小クラスTalashiでは init というメソッドをオーバーライドし - (id)init { self = [super initWithName:"Takashi"]; if (nil) { ... } return self; } のようにしようと思ったのですがこれでは親クラスの指定イニシャライザをオーバーライドしていません。 この場合 initWithName もオーバーライドした方がいいのでしょうか?
小クラスの指定イニシャライザがinitで(そこで親の指定イニシャライザを呼んでいるなら)、とくに小クラスで親クラスの指定イニシャライザを呼ぶ必要はないよ
×親クラスの指定イニシャライザを呼ぶ必要はないよ ○親クラスの指定イニシャライザをオーバーライドする必要は無いよ
425 :
仕様書無しさん :2014/01/01(水) 18:53:40.53
サンキューってのイラつくな? 釣りなのか?
427 :
仕様書無しさん :2014/01/01(水) 23:32:00.26
あるオブジェクトの隣のオブジェクトを取得するメソッドの名前はどのようにつければいいですか? - (id)nextObjectOf:(id)obj position:(pos)p posは前か後ろかを指定するものだと思って下さい こんな感じのメソッド名でいいですかね
>>428 ああ後ろか前かだけか。
nextなのに後ろじゃないっておかしくね
430 :
仕様書無しさん :2014/01/02(木) 02:34:09.32
- (id)nearObjectOf:(id)obj position:(pos)p これででうでしょうか
ん?そもそもobjって何のインスタンス?NSArrayじゃないの?
素直にインデックス振って、インデックス±1でアクセスすりゃよくねぇ? nearとかいう曖昧な形容詞とかはつけちゃいかんよ
NSArrayで返すメソッド一つ用意すれば事足りると思う
>>427 nearは「近くの」だから、厳密に隣だけならnextの方がいいけど、
>>429 みたいなのもいるからなぁ。
あと、positionはindexと同様に絶対位置を表すので、相対位置ならoffsetにすべき。
それから、objとかposとか中途半端に略すのは良くない。
ってわけで、自分だったら二つに分けるかな。
- (id)nextObjectOf:(id)object;
- (id)previousObjectOf:(id)object;
>>434 >あと、positionはindexと同様に絶対位置を表すので、相対位置ならoffsetにすべき。
補足。方向ならdirectionだね。
typedef enum { Previous, Next } Direction;
- (id)nextObjectOf:(id)object direction:(Direction)direction;
または、offsetを使う場合は、
- (id)objectAtOffset:(NSInteger)offset fromObject:(id)object;
>>433 で書いたけどまずNSArrayで順番含めて返すことを検討すべき。
cocoaフレームワークでも大抵そうなってる(NSViewのsubviewsとか)
NSArrayのメソッドにオブジェクトからindexを引っ張ってくるメソッドその逆NSEnumerator、Range色々使えるんだから。
それがどうしても使えない理由がある場合だけ自分で実装しな。
絶対的でないのに「すべき」は違和感がとてもある
438 :
仕様書無しさん :2014/01/04(土) 01:48:21.43
2条件のORをBOOL型の変数に代入したいんですが1行でやる方法はないですか? BOOL a = (条件式1 || 条件式2); のようにやってみましたがうまく行きませんでした。
>>437 あっそ。
じゃあ勝手にすりゃいいんじゃね。
441 :
仕様書無しさん :2014/01/04(土) 01:53:18.28
>>439 勝手にしていいなら「すべき」の存在価値がないなw
443 :
仕様書無しさん :2014/01/04(土) 02:00:14.23
笑った。ぐーっどっ
445 :
仕様書無しさん :2014/01/05(日) 00:56:23.40
親クラスで宣言してあるプロパティを小クラスでインスタンス変数アクセスしようとすると Use of undeclared identifier "_test" みたいなエラーが出るんだけどどうすればいいの 親クラスでインスタンス変数アクセスするといける
そりゃそうだ。 _testは@privateだから。 親クラスのヘッダにtest_でも書いて、@synthesize test = test_; こうすりゃ子クラスでもtest_が使える。
いや、protectedにせぇよ。
細かいツッコミ(失礼) @privateなインスタンス変数への外部からのアクセスは instance variable '_hoge' is private というエラー ソースをカテゴリに分けて別ファイルにしての、@propertyでの暗黙的インスタンス変数へのアクセスは、同じく use of undeclared identifier '_hoge' というエラー エラーメッセージはそんな(インスタンス)変数の宣言が無いというのだから、@propertyでの暗黙的インスタンス変数は、メインなソースファイル(.m)でのみ宣言されているからというのではなかろうか 解決方法に依存はありませぬう
たしかにそうだね。.mファイルで宣言されてるのかなこいつは。
>>447 そこまでこだわるなら子供と言えども他人、アクセサでアクセスしなさいってのが本質かと
>>449 .mコンパイル時に無名カテゴリか@implementation直下に自動的に付けられるようなものかな
>>450 いや、アクセサにしたら他のクラスからもアクセスできちまうだろーがアホか
サブクラスだけでアクセスしたいなら変数をprotectedにするしかない
指定しない場合、デフォでprotectedです。
>>452 ちゃんと読んでる?@propertyがあっての話しだろ。間が抜けているなw
455 :
仕様書無しさん :2014/01/05(日) 11:56:12.21
みんなありがとう 初歩的な質問かもしれんが @interface xxx : yyy { ここで宣言されてる変数はprivate? } @end
>>455 >>453 らしい
{
@private
NSInteger _hoge;
NSInteger _hage;
}
として、_hoge, _hageがprivate
457 :
仕様書無しさん :2014/01/05(日) 12:30:59.62
>>456 なるほど
じゃあ@synthesizeでプロパティに対応する自動生成されるインスタンス変数はprivateって認識でいいんだよね?
>>457 今は@synthesizeでインスタンス変数を自動生成させるなら、@synthesizeは書かないけどね
@synthesizeは.hには及ばない/及びようが無いので、privateだろうがprotectedだろうがpublicだろうが関係ないよーな。
>>453 なんだからprotectedなんじゃないかなあ
>>457 確認した。privateだねえ。失礼した
460 :
仕様書無しさん :2014/01/05(日) 13:08:57.59
@interface で宣言したインスタンス変数のデフォルトは @protected @implementation で宣言したインスタンス変数のデフォルトは @private @propertyによる(@synthesizeを書こうが書くまいが)暗黙的インスタンス変数は @implementation での宣言によるようなので、@privateってとこかな
>>460 そんなキーワード(変数)なんてヘッダーでもソースでも宣言されていないよってのが原因
全部一つのソースファイルで済ませばwあのエラーも出ないであろう
>>462 あ、変わりに
instance variable '' is private
にはなるな
>>463 ああそれそれ。
だから俺は、自動で生成されるインスタンス変数はprivateなんだなと思ってた。
プログラム板やMac板のプログラムスレを使うべき
大体ドコの板違いのスレでもある程度続いちゃったら もう自治厨の勧告程度じゃ変わらないのよ
467 :
仕様書無しさん :2014/01/11(土) 22:19:33.68
メッセージとセレクターの違いがわからん [obj methodA]; レシーバー obj に methodAセレクター メッセージを送信した って日本語であってる?
そもそもでいうと、オブジェクトに対してメッセージを送ると、そのメッセージに対応したメソッドが起動される、という流れだね セレクタとはメソッド名のことだよ 例えば [obj methodA:引数A methodB:引数B] というメッセージを送る場合は methodA:methodB:で1つのセレクタだね 言い換えると 1)オブジェクトのメソッドを起動する為にはメッセージを送る 2)そのメッセージとはメソッド名である 3)メソッド名はセレクタと呼ばれる と理解しているんですが...もしも違ったらだれかヘルプw
469 :
仕様書無しさん :2014/01/11(土) 22:40:49.61
>>468 セレクター = メソッド名
ってことですか?
メソッド:クラス中のなんかするやつ セレクタ:メソッドを識別するやつ(識別子) まあ、セレクター = メソッド名という理解で間違いないけど
クラス(インスタンス)にメッセージを送るという事は、メソッドを呼び出すということ メッセージを送るという表現は、送られたメッセージを他に回すということがあるので表現として便利とかかなあ
472 :
仕様書無しさん :2014/01/12(日) 01:31:34.02
アホすぎてすいません…… メソッドという概念とセレクターという概念をわざわざ区別するメリットというか意味ってなんですか? 他の言語でセレクターなんて表現聞いたことあり目線
メソッドは、実装はCの関数だ。セレクタとは文字列。 オブジェクトにメッセージを渡す == オブジェクトのメソッドを呼ぶ == オブジェクトにセレクタ文字列を渡す。
#import <objc/runtime.h> Method * ms = class_copyMethodList([NSObject class], &count); for (int i = 0; i < count; i++) { Method m = ms[i]; SEL sel = method_getName(m); IMP imp = method_getImplementation(m); unsigned int argn = method_getNumberOfArguments(m); char dst[32]; method_getReturnType(m, dst, 32); const char * name = sel_getName(sel); ... } ここら辺のランタイム覗くと色々見えてくるかと
476 :
仕様書無しさん :2014/01/12(日) 22:06:09.37
【社会】厚労省の中で男が刃物取り出す 銃刀法違反の現行犯で逮捕
http://uni.2ch.net/test/read.cgi/newsplus/1389346716/ 事前面接
http://ja.wikipedia.org/wiki/%E4%BA%8B%E5%89%8D%E9%9D%A2%E6%8E%A5 事前面接等の違法行為の被害者として憲法において保全されるはずの権利
である給料が中間搾取され、労働契約も不安定なものとなり、派遣社員の
なかでは法治国家への不信が増大しているとの議論が存在する。
略〜しかし過去・現在に事前面接下の派遣による中間搾取の損害を受
けた被害者は数百万人にのぼり、憲政史上、類をみない数の中間搾取による
犯罪被害者が創出され、それらの犯罪行為が放置されたことになる。犯罪
被害者も20〜40歳程度の若年・中年層が過半数を占めており、人口構成上、
公共の治安への影響力はきわめて強いといえる。被害者のなかで国(厚生
労働省・労働局・労働基準監督署)および司法(検察庁・警察)に対しての
不信や怒りが高まれば、大きな社会不安をおこす可能性はある。
二・二六事件 松本清張
農村の疲弊は、慢性的に続いていた農業恐慌の上に、
更に昭和 6 年と昭和 9 年に大凶作があって深刻化した。
農家は蓄えの米 を食い尽くし、欠食児童が増加し、娘の身
売りがあいついだ。農村出身の兵と接触する青年将校が、
兵の家庭の貧窮や村の 飢饉を知るに及んで軍隊の危機を感
じたというのはこれまでくどいくらい書いてきた。
そして青年将校らは考えた。結局独占資本的な財閥が私利
私欲を追求するために、こうした社会的な欠陥を招いたとし、
それは政党がこれらの財閥の援助をうけて庇護し、日本の
国防を危うくする政策を行っているからだとの結論に達した。
Objective-C上でiTunesの再生/停止を制御したり、 iTunesのウインドウサイズを変更することってできますか? MPMusicPlayerControllerはiOS向けですし、 NSRunningApplicationはウインドウ情報の参照のみで まったく実現出来そうにないんですが。
>>477 うん。そういうのはアプリ内でAppleScriptを介してというのが常道
>>478 そういうことですか。
あまりクールではないですね。
今後のiOS統合に期待します。
いやいや、inter-application communication のひとつだよ 標準化としてもクールな方じゃん iOSはinter-application communicationなんてできないからアレなんだがな
>>479 AppleEventを送ってやりゃいいよ
それすらできないで、クールじゃないと偏見だけで言っているでしょ
失礼しました。 クールじゃない云々は無知な私の戯言です。 思わずVBScriptを連想してしまったもので・・・ この場合のAppleScriptはUnixユーザがシェルを叩く感覚に近いんですかね。 AppleEventは初耳でした。 敷居が高くあまり表には出てこない印象ですが、この子の実質的なAPIが 今日のAppleScriptなのかなという印象なのですがあってますか?
AppleEvent:アプリケーション間で通信する場合のひとつのAppleの規格 イベントクラス、イベントID、データを独自に定義してとかアプリケーション間でやりとりするのには特に不備は無い。パイプ使ってとかの通信よりは面倒な面も有るが AppleScript:人にわかりやすいようにスクリプトで記述できる、まあ一般的に言うスクリプト 実装はAppleEventによっている。スクリプトとAppleEventの変換辞書を各アプリケーションが持っていて、システムはスクリプトからAppleEventへの変換をその辞書をベースに行なってという アプリケーションでAppleScriptの実装/対応を行なうというのは、AppleEventの処理を行なうのと辞書を用意すること(簡単に言えば) なので、スクリプトってなんか嫌というのなら、AppleEventをそのまま使えばいい AppleEventを処理するのはめんどくさい&AppleScriptを使えるAPIがCocoaにあるから、わざわざそんなことないけどね、普通は
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{ @autoreleasepool{ dispatch_sync(dispatch_get_main_queue(), ^{ [tableView reloadData]; もしくは [tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES]; }); } }); 画面スクロール中に、遅延実行処理(performSelector:withObject:afterDelay:)で 上記の処理のreloadDataで、画面が一瞬止まってしまいます。 止まらないようにするにはどうしたらよろしいでしょうか? エロイ人教えてください
reloadDataが必要なのかよーく考えよう
次期OSXはタッチパネルに対応して、UIKitの利用がデフォになると予想してるんだが、 そうなると、AppKitって不要になるよね。 AppKit死ぬの?
勝手に予想してそれに添って勝手に悲観的結論出してそれを他人に問いかけるって、病気です。はい
>>486 間違いなくそうなるだろうね。
そもそもAppKitって設計が古いのに一向に改善される気配も無いし、
Appleもどうせ捨てることになるAppKitを今更修正したくないんだろう
10.10でUIKitがOS Xに対応して、タッチパネルのMBP/MBA/TBDを発表して
AppKitは非推奨になるのでUIKitに切り替えて下さいって感じだと思うね
UIKitってAppKitと互換性あるの? UIKit対応とかめっちゃ面倒そうなんだが・・・ 1アプリ1日で対応できるなら許すけど。
UIKitはUIWindowがあって無いようなものだしな フルスクリーン大好きでそれしか使ってないヤツの妄言に真面目に考える必要は無いな
>>490 その「UIWindowがある」っていうのがポイント。
iOSアプリは、一見フルスクリーンアプリであるにもかかわらず、実はウィンドウだから、
極端な話、NSWindowをUIWindowで差し替えるだけで移植できる。
iOSでは全画面で動いていたアプリを、Macではその全画面を1ウィンドウとしたウィンドウ表示で動かす感じかな。
Mac版Clearとか使ったことあれば、イメージしやすいと思う。
リサイズの無いアプリケーションならね。そんなのだけが欲しいのか... Launchpadもすごく気に入っていたりするの?
>>491 >極端な話、NSWindowをUIWindowで差し替えるだけで移植できる
けど、そんなアプリはほとんど存在しないので、極論ではなく空論
iOSアプリをOSXにならわからないでもないが、それも面倒な話しで簡単ではないだろう
>>485 reloadDataを使わないやり方を考えて
一番上を消し、一番下に追加という流れをやりましたが
やはりスクロール中に処理をすると
一瞬固まりますね
諦めました
助言ありがとうございました
別のスレッドに投げて処理すれば
スクロール中に表示されているセルの位置が変わるなら、スムースじゃなくなるのは道理だろう てか、ここはiOSじゃねー
>>497 NSCollectionViewとかスクロール中にセルが増えたり減ったりしても普通に滑らかに動くでしょ
何をやってるのかわからんから何とも言えんな。 普通は大丈夫だよ。セルの再利用だってどんどん移動させてるわけだし。
500 :
仕様書無しさん :2014/02/11(火) 21:53:44.87
起動時にモーダルビューを表示したいんだけどどうすればいいの? メインビューの読み込み時とモーダルビューの表示をコネクトしたいけどどうやればいいかわからん iOS 開発です
>>500 起動スプラッシュで調べればいいと思うよ
502 :
仕様書無しさん :2014/02/12(水) 02:25:56.93
object-cでiphoneアプリ(オークションアプリ)作った場合 運営側の管理画面はほかの言語で作るのでしょうか※ruby on railsなど
>>502 オークションってことはバックエンドはWebだよね。
だったら、管理者機能は通常Webだね。言語としてはサーバサイドたから、RubyやPHPやJavaとかになるだろうね。
>>500 window.rootViewControllerのviewDidLoadが呼び出されたタイミングで、モーダル表示すれば良いのでは?
505 :
仕様書無しさん :2014/02/12(水) 08:24:19.21
506 :
仕様書無しさん :2014/02/12(水) 12:54:30.42
>>503 さん
ありがとうございます。助かりました。
4年大学出てアルバイトの時給より給料安い会社入っても空しいだけ 賞与は無い、昇給も無い そんな会社存在意義が無い はやくなくなることを望む
508 :
仕様書無しさん :2014/02/12(水) 21:10:52.43
>>504 performSegueWithIdentifier:sender:
使ってやってみたんですが
Warning:
Attempt to present <modalのビューコントローラ> on <モーダルの一個下のビューコントローラ> whose view is not in the window hierarchy.
とでて出来ません。
ウィンドウ階層に入ってないということだと思うんですが何をすればいいんでしょうか
509 :
仕様書無しさん :2014/02/13(木) 09:34:51.59
510 :
仕様書無しさん :2014/02/13(木) 10:34:11.96
すまんどこで聞けばいいかわからんからここで聞かせてくれ
最近iPhoneアプリ開発始めた者だけどiOSシミュレータの見た目が通常は実機みたいな見た目になるみたいなんだが
http://i.imgur.com/JlJXat4.png こんな感じで通常のウィンドウみたいな表示になる。誰か直し方教えてくれさい
>>511 実機みたくなるのはiPhone 非Retina iOS5.1 100%のときだけだな。
それ以外ならウィンドウみたくなるよ。
>>514 MacがRetinaだったらRetinaでもiPhoneみたくなるよ
SDK落とそうと思ってDev Center行こうとすると We'll be back soon. の表示が出るんだけどメンテ中?落ちてる?
うん、メンテ中か落ちてるね
>>518 やっぱりそうか・・・。しばらく待ってみるサンクス。
520 :
仕様書無しさん :2014/02/17(月) 21:16:58.90
Siriが邪魔して通話処理がうまく行えない・・・・ Siriが起動されたかどうかって判断できるのかな やり方ご存知の方いらっしゃいます??
522 :
仕様書無しさん :2014/02/22(土) 04:13:22.58
siri?? 情報系の大学生のobjective-c知ってる?と聞いたら 何それ???だって。 でも、C++は教えて欲しい。
523 :
仕様書無しさん :2014/02/23(日) 21:03:01.97
わりと日本語うまいね
非公開APIを使うとAppStoreでリジェクトされるって言うけど、Carbonも非公開API? そもそも非公開APIの見分け方もよくわからないんだけど、 Deprecatedになってるメソッドやアンダースコアで始まるメソッド名は非公開APIなのかな?
>>524 Appleのドキュメントに載っていないのが非公開APIです。Undocumented APIとも言います
manもAppleのドキュメントと見なせます
ああ、ヘッダーもドキュメントと見なせるかな。ヘッダーにあるけどドキュメントには無いってのは知らんけど
なんだそういうことか。 普通に開発する分には特に意識する必要なさそうだね。 ところで、みんなCarbon使ってるかい?
Carbonって何を指して言っているんだか。本来のCarbonだったら今更使う意味は全く無いな
グローバルホットキーのためだけに未だにCarbon使ってる。 NSEventのaddGlobalMonitorForEventsMatchingMask使ってみたけどアラート鳴るよねこれ。
SpriteKitの質問です。スレ違いならすみません。 物理エンジンを使用してゲームを作っています。 self.physicsWorld.gravity = CGVectorMake(0,0); で重力を消し、 sprite.physicsBody.velocity = CGVectorMake(10, 0); で右方向へ飛ばしているのですが、減速していきいずれ止まってしまいます。 速度を保つ方法はないでしょうか?どうかお願いします。
物理エンジンを使ったこともないし、spriteKitも使ったことないけど、 摩擦設定があるならそこじゃないかな。摩擦で減速してんじゃない。
532 :
530 :2014/03/08(土) 22:33:18.45
>>531 摩擦と空気抵抗を無くすことで思い通りの動きになりました。
ありがとうございました!
sprite.physicsBody.friction = 0.0f; // 摩擦
sprite.physicsBody.linearDamping = 0.0f; // 空気抵抗
533 :
仕様書無しさん :2014/03/09(日) 19:18:34.47
SpriteKitの質問です。 ノード削除時にエラーになってしまい困っています。 削除したいノードはSKShapeNodeにSKEmitterNodeを追加したノードです。 下記のコードを実行したところEXC_BAD_ACCESSとなってしまいました。 SKNode *node; //node = [SKSpriteNode node];//こっちはエラーにならない node = [SKShapeNode node]; NSString *path = [[NSBundle mainBundle] pathForResource:@"MyParticle" ofType:@"sks"]; SKEmitterNode *emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:path]; [node addChild:emitter]; [self addChild:node]; [node removeFromParent]; よろしくお願いします。
SpriteKitならiOSスレのほうが詳しいんじゃないか?
最近常駐アプリ作ってて、処理効率を少しでも上げるためにインスタンス変数を直で扱うようにしてるんだが、あまり良くないかな。 本来インスタンス変数はアクセサメソッド経由にしたり、プロパティ使うのがお約束みたいだが。
場面とか目的によるでしょ。 メソッドと関数で呼び出しのオーバーヘッド比較した事あるけど、7倍あった。iPhone5でね。 インスタンス変数直ならもっとあるな。Macでも同じじゃない?
>>535 誤差の範囲でしょ。
それより、ポーリングせずにちゃんとイベント駆動にするのが重要。
最近はファイルシステムとかに関するイベントも充実してるみたいだし。
ネットもなるべくプッシュ通知で。
538 :
仕様書無しさん :2014/03/11(火) 22:49:56.26
最近、iPhoneアプリを作るのに飽きてきたんだが、どうやってモチベーション維持したらいい?
Cocoaアプリを作る。ためにこのスレに書いたんでしょ?
>>538 iPhone以外のアプリ作ったり、サーバー側作ったり、野菜育てたり、本読んだり
>>538 自分に設定したハードル低いんちゃうか?
542 :
仕様書無しさん :2014/03/12(水) 22:59:40.18
いまいちアプリ作りの目標がパッとせんのや 作りたいもんがある頃は楽しかった
知らんがな それはリアルな友達と話した方がいいだろう
>>542 お題を出し合うとかも面白いかな?
例えば...パズドラモドキをみんなで作ってみよう!...とか?
545 :
仕様書無しさん :2014/03/16(日) 16:32:45.81
これまでWindowsでC++/CLIしかやってきてないけど MacでObjective−Cに転向するのはどのくらい大変?
人による ちょっと表記法が独特っていうのをすんなり受入れられれば全然 いままでやってきたことばかり頭にうかんであーじゃないこーじゃないとか言うんだったら、険しいwだろうな
547 :
仕様書無しさん :2014/03/17(月) 02:37:44.21
あほみたいな質問ですいません Macの環境に依存しないライブラリって何種類ぐらいあるでしょうか?(よろしければ具体的なヘッダー名を上げてもらえれば助かります) 純粋な(Macの環境に依存しない)Objectiv-cの機能が知りたいのですが・・・
548 :
仕様書無しさん :2014/03/17(月) 02:52:12.45
>>547 ライブラリというよりフレームワークですが
>>547 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/objc/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/objc
二回貼り付けしてしまった
ヘッダ眺めてたらわかると思うけどWindowsじゃGC無いとかあるから最初から他環境でのObjective-Cに期待なんてしないほうがいい
552 :
仕様書無しさん :2014/03/17(月) 14:25:35.41
553 :
仕様書無しさん :2014/03/18(火) 22:25:40.70
RainbowApps ジークラウド株式会社が運営 iPhone アプリマスターコース 実情 講座は全てテンプレートのコピペ貼付け 自宅でも本で独学しないといけないので、結果独学と変わりなし コピペアプリもどきをAppStoreにださせて達成感を与えてできるように思い込ませる。 実際は商業化できるレベルにはならない。 無料参加の対象を34歳以下として年齢制限するなど悪質 半年以内に指定の人材紹介会社で転職するよう強制 (指定人材紹介会社には、違法派遣、偽装請負、多重派遣、違法求人広告などをしているとささやかれているものがある。) 違法性 無料講座の受講生は指定人材紹介会社経由で半年間以内に転職させられる。 経済的・心理的に追いつめて転職・就職を強要する。 指定の紹介会社以外の紹介会社より転職した場合に、契約違反の罰金として10万円を請求してくる。 求職者の希望が高すぎて転職が決まらないことを悪質として、その場合も罰金を請求。 ・職業安定法2条の職業選択自由の保証に違反。転職や就職を強要するのは、人材紹介会社の許可の趣旨に真っ向から反する。 ・無料講座は人材紹介会社が資金提供するが、参加条件に34歳以下となっているが、雇用対策法において人材紹介会社が年齢制限することを禁止している。 ・警察(強要罪)、労働局(違法な強要的・脅迫的人材紹介、人材紹介における年齢制限禁止違反)、労基署(労基法5条強制労働の禁止)に通報してください
初歩的な質問で悪いけど、 -(void)a +(void)a 関数の+ - って何を意味してるの?
インスタンスメソッドとクラスメソッド
ありがとう。 objective-cってクラスのstatic変数はないくせにstaticメソッドはあるのか・・
意味わからん。staticで宣言すればstatic変数じゃん。
ああ、obj-cの言語仕様としてって意味か。 だって要らないもんw
559 :
仕様書無しさん :2014/03/31(月) 15:32:12.60
static変数って、ファイル単位の変数だよね?(Cのstatic)
@interfaceの中で宣言した物に関してはクラスと小クラス内でのみ有効なstatic変数になる。
Application Supportディレクトリの利用が今後非推奨になる可能性ってあるかな? iOSからサンドボックスの考えが主流になってるし、 そのうちApplication Supportが非推奨になるんじゃないかとびくびくしてるんだが。
>>563 ん?OSXにもサンドボックスがあるけど。10.8からだっけ、10.7からだっけ
Application Supportもサンドボックス内にあるから、それはないんじゃね
~/Library/Containers
見てみ
おお、サンドボックスにApplication Supportがあるのか。 なら~/Library/Application Supportのほうはもう要らない子なのか。 でもほとんどのアプリは~/Library/Application Supportの方を使ってるね。 サンドボックスの方使ってるのはEvernoteとApple純正アプリくらいか。 ~/Library/Application SupportにGoogleやMozillaのディレクトリがあることから推測すると、 現状はアプリ間でデータを共有するようなケースで使われてるのかな? いわゆるベンダードメイン的な。
>>565 Mac App Store で提供/に登録するアプリは サンドボックス必須 らしい。他は今まで通り手も可という
>>564 >>566 情報ありがとう、AppStore向けのアプリ作ろうとしてたから助かる。
ちなみに、前にベンダードメインって言っていたアプリ間の共有空間を作る場合は、
Containersとは別にGroup Containersという仕組みがあるみたい。
OSXでサンドボックス必須ってことはシステム情報の読み書きとかも出来なくなるってこと? iOS並に制限されたらちょっと考えちゃうな。
569 :
仕様書無しさん :2014/04/16(水) 15:32:58.69
>>568 iosよりは緩いよ
外部プログラム起動できるし(多分)
>>568 システム情報以前にファイルの読み込み書きがそもそも出来ないらしい。
ファイルの読み書きはNSOpenPanel, NSSavePanel経由に制限される。
つまりユーザがダイアログで直接選択したファイルしか利用できないわけ。
だからFinderみたいなファイルエクスプローラは作れないし、
アプリ起動時に前回開いていたドキュメントを自動的に表示するようなことも出来なくなる。
オープンソースのコード読んでると時々Objective-C++でファイル書いてる人がいるんだけど、 なぜかC++の処理まったく記述していないんだよね。 なにか利点でもあるのかな。
>>571 特にない。後でC++使おうとしたときにめんどくさいからってぐらいかな
.mmにしても.mと全く同じだし。コンパイル速度が遅いとかある(らしい)けど、そんな全部リコンパイルなんてしょっちゅうしないから、気にならないしぃ
気付いてないだけでどっか演算子のオーバーロードしたり、 あるいはC++のリテラルでも使ってるんじゃね。
単純にパフォーマンス意識してるだけなのでは。 そんなに変わるとは思わないけど、 一応NSObjectクラスはObjective-C++で書かれてるわけだし。
Macの開発環境って将来的にC++ベースになったりするの?
>>575 ない。変る理由がないから。
ただしネイティブプログラムからウェブベースには移行するかもしれないけどね。
Cocoa製のエディタってテキストサイズが大きくなるにつれて 日本語入力が重たくなるのは有名だけど、 Apple純正のメモ帳だと全く問題ないんだよな。 非公開のViewでも使われてるのかな。
普通に変更部分だけ再描画してるんじゃないの?
みんなOSXの開発でXIB使ってる? 自分、StoryBoardが出るまでは絶対にGUIツールは使わないって心に決めてるんだけど変かな?
580 :
仕様書無しさん :2014/05/31(土) 20:46:08.23
なんか興奮してきたな
581 :
仕様書無しさん :2014/06/01(日) 14:46:51.52
WWDC明日か〜楽しみ iOS8でるね
寄せ見て乙
583 :
仕様書無しさん :2014/06/03(火) 02:07:09.92
WWDC始まった〜^^
584 :
仕様書無しさん :2014/06/03(火) 02:10:48.02
mac 12% 売り上げ増 その他PC 8% 売り上げ減
585 :
仕様書無しさん :2014/06/03(火) 02:15:15.10
OS X Yosemite
586 :
仕様書無しさん :2014/06/03(火) 02:23:15.64
ジョナサン相武
587 :
仕様書無しさん :2014/06/03(火) 02:27:19.27
Mail Drop
588 :
仕様書無しさん :2014/06/03(火) 04:16:24.72
そこはジョナサン愛撫だろ
590 :
仕様書無しさん :2014/06/03(火) 21:45:42.08
今回の発表は盛りだくさんの内容だな
新規参入は増えると思うけどObjective−Cに慣れた身としてはあまり魅力を感じないんだよな。 Xcodeのコード補完があるからObjective−Cでもまだまだ行けたと思うんだが。 だいたいObjective−Cよりも高速ってのが胡散臭い。 話題性のために大げさに言ってるだけだと思うけど。 Cocoaの標準機能呼び出した途端に遅くなったりするんじゃないか? Swiftの方が補助言語に成り下がってしまいそうで恐ろしい。
592 :
仕様書無しさん :2014/06/03(火) 23:42:56.29
これまで通りObjective-CやCとも共存できるんだし、何を心配してるんだか
共存もそうだし、Objective-Cだけはもうダメですでもないのにな 仮にObjective-Cを完璧に捨てる予定だとしても、明日にもでもないし、果たして2年後3年後なのかわかりもしないののにね
Swiftの絶対的な優位性が無くてフラグメンテーションが起きるのを心配してるんじゃないか? 互換性やコード変換が可能といってもコストはゼロじゃないし、 中途半端にObjective-Cが残ったり一部だけSwiftになったりすると、互換性持たせるために却ってコストが増えるという。 数年で全部Swiftに移行完了するのが理想だろうね
CF系のフレームワークとかどうするんだろう。 あれC言語で書かれてるじゃん。 あと言語仕様的にコード変換は難しいんじゃないかな。 Objective−C側で手作業でのコード整理が必要になるだろうし マクロもインライン展開されちゃったりして痛い目見るんだろうな。 頑固にObjective−Cを使い続ける人が出てくると予想。
別にいいと思うけどな。頑固とかじゃなくて好きならそれを使えばいいだけで Swift - Objective-C/C はトールフリーブリッジっぽいけどな。だったら尚更好きな方を使えばいいだけだな
あとはAppleがObjective−C殺しの方針を打ち出してくるかどうかだよね。 Objective−Cの仕様はMRCの時代からかなり勉強してきたので無駄にしたくないな。 CF系の件だけど、C言語向けの型がSwift内に用意されてるみたいね。 なのでSwiftからCとのやり取りは問題なさそうだけど、あとはオーバーヘッドかな。 どちらにしろCが無くなることはなさそうだね。SwiftがCより早くなればまた別だけど。
C言語で書かれている有用なクロスプラットフォームなライブラリが沢山あるから速度以外の面でもCが無くなることは無いでしょ。
あるわけないわな。そのとおり。Apple自信だってOpenSource活用しているんだからなあ なんだろこの新しいのが出たらそれ「だけ」ってのは。まあ2chでは2値基準というのはよく見るけど
そもそもCが消えるわけないわな OSS全部書き換えるって話になってきちゃうわな
601 :
仕様書無しさん :2014/06/04(水) 22:45:37.86
Swiftが速いと言われてるのはおそらく Objective-Cのメッセージによるオーバーヘッドが無くなるからであって、 メソッド単体の処理で言えば、Cをネイティブで走らせてるObjective-Cのほうが有利だと思うんだよな。 再帰使わずにフェボナッチ数列求めさせたら絶対Objective-Cのほうが速い。 GUIプログラミングみたいなロジカルなコードを書くならSwiftの方が最適もしれないけど、ゲームや科学計算のようなシビアなコーディングする世界ではObjective−Cが使われ続けるんじゃないだろうか。
相互に関数が呼び出せるんだから、部分部分をどの言語で書こうがそりゃ自由だ
604 :
仕様書無しさん :2014/06/10(火) 07:01:36.46
今までつくったアプリ全部Gitに公開するわ レビュー5点のアプリ1つ レビュー4.5点のアプリ1つ レビュー3点のアプリ1つ 1400円で販売してたアプリ1つ ゴミアプリ2つ 今週中にはなんとか
605 :
仕様書無しさん :2014/06/10(火) 10:42:45.38
あ、はい
速度マックスを求める今こそ、アセンブラへの原点回帰をだな(ry
結局SwiftはObjCの置き換えなのか共存なのか、いまだにはっきりしてないな。 世間一般では完全なる置き換えという認識だけど、公式には曖昧だが共存という言葉もが使われていて、 新言語の出来次第ではSwiftユーザとObjCユーザを二分しそうだな。 Appleはがこれほど曖昧にしたがるのはきっと彼ら自身もまだ明確な答えが出せてない証拠だと思う。
曖昧にしたがっているのではなくて曖昧にしかならないのだろ。言っている通り 来年のWWDCではっきりするだろう。ってことは1年はObjective-Cでも問題ないし、Swiftやっても問題ないし、どっちでも問題ないなっていう 来年のWWDCではっきり例え全てのセッションがSwiftになってObjective-Cの先が無いよってなっても、Objective-Cが無くなるのはそれからまだ先のことだろう。早くても今から2年後(ありえない)以降 Objective-Cがあとか今言っているのはアホか先物好きか、新しい言語に慣れるのに3年からるヤツとかじゃね
Obje-CのAPIは、あと10年は残ってるだろう。
MBPと差別化が難しくなってるMBAがARM搭載になって swiftでアプリ共通化される 夢を見た
Objective-CとiPhoneのプログラムって、どう違うの?
は?
PocketやGraffitPotのようにタイトルバーにまでスプリットビューが伸びているアプリが最近やたら多いんですが、どうやって実現してるんでしょうか? GUIツールではどうやら実現できそうにないです。 タイトルバーの高さやアイコンの配置間隔などは両アプリとも同じなので、なにか有名なライブラリでも使ってるのでしょうか? もしくはYosemiteの標準アプリではこのスタイルが一般的になるようなので、 もしかしたら昔からあったプライベートAPIかなにかを使っているのでしょうか。
614 :
仕様書無しさん :2014/06/23(月) 19:50:56.69
Objective-CとC++を混ぜて書けるってことなんでいろいろ試してるんだけど ↓これが、実行時にエラーになります。 std::vector<NSString*> vec{@"aaa", @"bbb", @"ccc"}; なぜですかね。 初期化じゃなくて、追加なら問題ありません。 std::vector<NSString*> vec; vec.push_back(@"aaa"); vec.push_back(@"bbb"); vec.push_back(@"ccc"); C++のstringなら、初期化しても普通に動きます。 std::vector<std::string> vec{"aaa", "bbb", "ccc"};
拡張子を.mmにしなきゃだめらよ
>>614 ARC関連じゃないかなあ。Core使う場合でもなんだから、
std::vector<CFStringRef> vec{(__bridge CFStringRef)@"aaa", (__bridge CFStringRef)@"bbb", (__bridge CFStringRef)@"ccc"};
じゃないととか?
darwin(?)のstd::vectorがどこまで、Objective-Cオブジェクトを知っているかというと、どうだろうなあ
Objective-Cオブジェクトをそのまま扱うならNSArrayを使うのが無難/余計なことしないぶん読みやすくもあると思うけど
>>614 落ちたとこの見てみたら template 展開後の __strong … __strong が怪しいので、
std::vector<__unsafe_unretained NSString*> vec{@"aaa", @"bbb", @"ccc"};
にしたら、とりあえずは大丈夫のよーな。まあ、ARCでObjective-CオブジェクトをC/C++で使うのにはちょっと注意が必要ね
>>614 そういえば、文字列リテラルないくらReleaseしてもReleaseされないNSStringオブジェクトなのに、なんでやねんと思い直し、
考えられるのは、初期化していないstrongなインスタンスの変数にぶっ込むことによって、ゴミをReleaseしようとしてクラッシュだろうな。mallocなんじゃねっていう
CFStringRefも__unsafe_unretained NSString*もんなこたーないから大丈夫っつう
まあ、std::vectorでObjective-Cオブジェクトは使わない方がいい。また、ARCを使わない(これはナイなw)
in reviewって普通、何時間くらいで終わるんですか? アクセスの履歴はないんですけど、何日も放置なので。
620 :
仕様書無しさん :2014/06/25(水) 19:17:57.36
7日以内
621 :
621 :2014/06/29(日) 01:37:19.58
swiftに全く触手が動かん・・・ 鬱だからだろうか?
622 :
仕様書無しさん :2014/06/29(日) 15:42:38.98
ぼく今躁状態ですけどswiftクソクラエですよ
623 :
仕様書無しさん :2014/06/29(日) 16:32:35.80
勉強しようと思ったけどPythonで事済んだわ PyObjCステキ
夏休みにObjective-C学ぶつもりでいたのにSwiftが出てきて何も出来なくなってしまった。
秋にはswiftの正式版でるんでしょ? 今から勉強して、アプリができるころには秋になってるんじゃないの。
別にObjective-Cやって損はないよ。 Swiftの情報が普及するのに1年以上は掛かる。 それまで初心者は手を付けられない。 Swiftが完全に普及するのは2年くらいかかるんじゃないだろうか。 現行開発者でも年内は様子見がほとんどだと思う。
>>626 だね。
複雑なUIでなければ割と簡単にアプリ書けるし、
やはりJavaで動かすAndroidとレベルの違う小気味よい動きが楽しい。
Swift勉強する事になったとしても基本はObj-cだ。
628 :
仕様書無しさん :2014/07/12(土) 20:05:14.73
損はないけど、やんなくていい。
CoreData使ってる人って本当にいるの?
うん
CoreData 使えるようになるとちょー便利 sqlite とかつかってられない
大抵のデータ管理はplistで事足りるし。 CoreDataが流行らないのはObjective−Cに名前空間が無いからだと思う。 テーブルごとにモデルクラスを作らなきゃいけないのも面倒。
なにを頓珍漢なことを言っているのだか
>>634 全部メモリに展開されても構わないような小さいデータを扱うアプリならそれでもいいかもね。
でも「大抵」はCoreDataは使ったほうがいいと思うけど
CoreData使わないと、iCloudにupされないからなー
FinderからViewに複数ファイルをドロップしたとき、 performDragOperationで処理しています。 たとえば5,000ほどのファイルをドロップしたとすると、 NSPasteboard *pb = [sender draggingPasteboard]; のpbをNSArrayに入れた瞬間に、 [ Consume sandbox extension for itemIdentifier (4555) from pasteboard failed! ] [ Consume sandbox extension for itemIdentifier (4556) from pasteboard failed! ] ・・・ [ Consume sandbox extension for itemIdentifier (5000) from pasteboard failed! ] などというエラーが出ます。 このエラーは大体5,000近いファイルをドロップした場合に起きます (sandbox化しなければ10,000であろうと問題ありません)。 どなたか解決法をご存知でしょうか。
どうしてもわからないことがあります navBarとtabBarの色をUIColorで指定しているんですが、実機だと思ったような色が出ません [UINavigation Bar appearance].barTintColor = [UIColor blackColor]; のように指定しているんですが、シミュレーター上だと黒色になるんですが実機だとグレーにしかなりません 黒だけではなく、tabとnavの時だけ色が薄くなるように感じます 何か特別な設定が必要なのでしょうか・・・?
>>639 バーが半透過してて下地のViewの白がみえてるとかじゃないの?
iOS7 のバーって機種とかマイナーバージョンの違いでちょっとずつ見え方・透け方が変わるんだよね。
試してないけど、 translucent を NO にしてみるとかかな。
>>640 tabbarもnavbarも.translucent = NO;を設定することで解決しました!
ありがとうございます
どうしてもわからないことにぶち当たったので iOS7の場合にStatusBarにViewを被せて背景を黒くしています ViewController-based statusbarはNOにして、Appdelegateにてwidth*20のViewを作り self.window.rootViewController.viewにaddしています ちなみに、NavigationControllerを使用しています ここまではよかったんですが、modalviewに遷移した時に、statusbarがnavigationbarの色で塗りつぶされてしまいます UIViewControllerのサブクラスを作り、UINavigationControllerのViewに設定した後で [self presentViewController...]で設定しています 新しく呼び出しているわけですから、statusbarが設定されてないのもしょうがないと思い、サブクラスで同じように設定したところ Navbarの下に表示されてしまいました。 self.window...にaddしてないからから当たり前か、と思いwindowプロパティを作って同じようにしても駄目でした どなたか解決法をご存じでしょうか?
あんま状況わからんけど、add するタイミング変えてみるとか (presentViewController 終わったあととか) add したあとに Navbar が SDK 側で作られて上にかぶってるのかも subviews の順番見てみると良いかも view の layer の zPosition 調整でも良いかも iOS 6 風のステータスバー作るのがその方法がベストなのかは謎 そしてここが iOS 質問スレなのかも謎
ありがとうございます self.viewに貼り付けてy軸を-64ずらして、navigationbarをzPositionで最背面にするという力技で、なんとかできました objective-Cのスレッドが見つからなかったので、すいませんでした
新・mac板とかにiOS開発質問スレとかあるよ
646 :
644 :2014/08/19(火) 03:00:43.96
ありがとうございます。今後はそちらを利用してみます。
AppKitってタブアプリのサポートしてないのかな? NSTabViewはなんだかSafariやFinderのタブとは別物みたいだし。 今後NSWindowControllerは複数のNSDocumentを管理できるようになるのだろうか。
実行プログラム内で、任意クラスのメソッドの引数の型を調べたいと思っています。 例えば、 MyClass に -(void)setHoge:(NSString *)value というメソッドがあれば、 valueにあう型が正確にNSStringと言う事を知りたいと言った感じです。 よろしくお願いします。
ランタイムにはそんな情報ねーよ、ただの id。 欲しけりゃ自分で作るんだな。
[value isKindOfClass:[NSString class]] とかじゃなく、使う側が、setHoge:の引数の型がってこと?
NSMethodSignature使えばわかるよ。ちとメンドイが。
ああ、わかるのは Objective-C type encodings までだな。
654 :
649 :2014/08/27(水) 03:55:11.84
コンソールで、メソッドの引数にNSString型を求めてるとろに違う型を入れるとNSStringを入れろと 怒られたりしたので、もしかしたら、実行プログラム内でも分かるのではと思ってましたが、 無理そうな事が分かりました。 知恵を出して頂いた方々、ありがとうございました。
appkit、廃止の道を歩むのかと思っていたら、10.10のapi差分みると結構機能強化しているな。
そこは素直に俺の糞予想が外れたといいなさい
誰か一緒にmacのエロゲ作りませんか?
658 :
仕様書無しさん :2014/09/13(土) 11:34:28.34
iphone ipad appのリバースエンジニアリングってどうやるの?
>>658 ツール使えば、中のクラスとメソッドシグネチャーとかぐらいは見れるけど。
そこまでだよな。俺はやった事無いけど。 コードは無理だろ。
iCloud Deiveが出てきたら今までのiCloud対応ってやらなくて良くなるの? もしくは今までの仕組みはHandoffに転用出来るようになってるとか?
>>661 http://support.apple.com/kb/HT201104?viewlocale=ja_JP Finderでドライブとして見えるのだから、iCloud意識しなくてもいい=iCloud対応ってやらなくていいんじゃね
でも、Yosemiteだけの話で、Mavericksもというのなら今まで通りの Documents in the Cloud で
てか、Documents in the Cloud とはいったいなんだったのかって話だなあ。Documents in the Cloud でも ~/Library/Mobile Documents にアクセスすればドライブでなくフォルダだが似たようなもんだし
HandOffは別APIが提供されているので既存のiCloudeの仕組みは使われてないと思う。
xcode 6 ってmac OS 10.6と互換性ないの?
旧iCloude厨死亡かよ。 Appleは開発者に対して容赦無いな。 その内Objective-C開発者も切り捨てられるんじゃね?
Objective-Cはパフォーマンス上げられるから生き残るよ(震え声)
Objective-Cがわかってれば、Swiftの学習やら移行は楽なんかな? Obj-Cの切り捨て時期がわからんから困る。
これから始める人はObjective-Cから始めても問題ない。 Swiftが出てきても使うフレームワーク(Cocoa, CocoaTouch)自体はなんにも変わらないし、 しかも情報やサンプルコードの量を考えればまだまだObjective-Cが優勢。 特にコピペプログラマはWeb上のコードコピペしてすぐに動かせるメリットが大きい。 Swiftはあと2年くらい様子見期間が必要だと思う。 特に弱小中小企業が使う場合はその辺の見極めがものすごく重要だと思うんだけど、 とりあえずObjective-Cのままでいくかという空気は良く感じる。 開発者側としてはヨダレが出るほどSwift使いたいんだけど、会社側には厄介な存在、それがSwiftだな。
コピペ楽って言うけど、XcodeにはObjC->Swiftみたいな変換機能付いてないの? MRC to ARCやモダンObjCの変換機能が付いていたくらいなんだからあり得ると思うんだけど。 逆に無いということはSwiftは単なる実験的な言語であって、ObjCの後継言語ではないということになるよね。
後継とか言ってたっけ? 互換だけど後継ではなくて置き換えるつもりなんでしょ
まだAppleはどうとも言っていない
てか、SwiftはまだよちよちでObjective-C(Cocoa/Cocoa Touch)が無ければ独り立ちできないものなのに
なんで
>>669 のようなのが湧くのか不思議だな
672 :
仕様書無しさん :2014/11/10(月) 23:34:06.52
文字列をスプリットするのに、stringbyseparated...とか、 コード補完してくれるからいいものの、冗漫に見える。
慣れればいいことよ。そして慣れるものよ
TableViewにドラッグアンドドロップするサンプルコードで swiftのものが見つけきれない。 どう実装すればいいんだろう。ご存知ないですか。
CocoaなんだからObjective-CのをSwiftっぽくするだけいいじゃん?
>>674 なんでいまの時期にSwiftを始めてしまったんだ。
まだ半年も経ってない赤ちゃん言語にObjC未経験者が取り組むってかなり茨の道になると思うぞ。
>>675 >CocoaなんだからObjective-CのをSwiftっぽくするだけいいじゃん?
そう思うでしょう。私も始める前はそう思ってました。
ところが、objCの気持ち悪さといったらもう。
中途半端にSmallTalkで目が泳いでよう理解できませぬ。
それと、XCodeの、使いよう?明示的に裏で動いてるコードがあるようで、まいごになってます
mvcのどれがどうなってんの、とか。戸惑いっぱなしです。
だったら
>>676 の言う通りだな。あと1年ぐらい待ってからにしなさいな
ドキュメントでSwiftとObjective-Cが並んでいるがたいした変わらない/変わらないようにしていると思うけどな。たったあれだけの差で気持ち悪いとか…SmallTalkだって本当は知らないんだろうな
>>676 >
>>674 >なんでいまの時期にSwiftを始めてしまったんだ。
>まだ半年も経ってない赤ちゃん言語にObjC未経験者が取り組むってかなり茨の道になると思うぞ。
案の定つっかえながらですね。
老婆心ありがたく。なんとか、ドラッグアンドドロップできました。
やり方に何種類かあるらしく、どれがどうなってるのかまごつきましたが。
connectっていうのがよくわかってなかった。
慣れればこれ可読性高いかも、とおもい
>>678 SmallTalkの カッコと引数名の合わせ技が、今風ではないので脳がまだ慣れとらんとです。
>>679 グフっつ。
できたものをエクスポートしたらドラッグアンドドロップがどういうわけか効かない、、、なぜだ、、、。
Tableviewではなくて、Windowのサブクラスでないといかんのかしら。明日明日はそこからやり直してみよう、、、
MacプログラマとWindowsプログラマって基本的に仲いい? 長い事Windowsなんだけど、今度Macのプログラミングもやることになりそう 俺自身はMacもWindowsもLinuxも、どんなOSでも大好きってタイプ Macな職場における言動で、何か気をつける事あるかな? 「この話しは絶対するな」とか
>MacもWindowsもLinuxも、どんなOSでも大好きってタイプ なら全然問題無いだろう Macな職場だろうがWindowsな職場だろうが、Linuxの職場だろうがなにかをディスる/あれだったらああなのにとか、その職場で関係無い意味ないこと言わないだろうし >MacプログラマとWindowsプログラマって基本的に仲いい? 職場だったら仲いいとかなくふつー。仲良くなるかはMacプログラマとかWindowsプログラマの属性は関係無い。極々稀に変なヤツがいるかもしれないが属性とは無関係に元々変なヤツなので気にしなくていいw
信者クラスのキチ○イはこの業界のひとじゃないことが大多数。 そこまで警戒する必要ない。 PGクラスになると、各々好みはあるけどそれぞれの長所短所を理解して認めてる。 嫌いなOSも商売道具なわけで。
完全Yosemite向けにアプリ作るかMarvericksもサポートするかで悩んでる。 Yosemiteからかなり仕様変わったよね。ViewControlleあたりとかStoryboardとか。 基本APIはMarvericksの頃から整備されてるから、互換性サポートするならMarvericksからが最適なんだけど、 後々色々面倒になりそうで怖い。
はじめてCocoaアプリケーションを作ろうとして ひとまず,フィルタプログラムを書いてみようとしています. 標準入力あるいはファイルから一行づつ読み込むにはどのメソッドをつかえばいいでしょうか. バイト数指定して読むreadDataOfLengthの他には 最後まで読むしかないようです...
>>686 今から始めるならYosemite対応からのほうがいいよ。
GUIがiOS寄りになってAPIもかなり増えたから、互換コード沢山書かなきゃならん。
>>687 そんなのはありません。自分で作るか 標準C関数 を混ぜ混ぜ
>>689 やっぱりないんですか …
自作します。ありがとうございました。
OSXアプリ開発に詳しい方に聞きたいんですが、 AppStoreで購入したアプリに自分で言語ファイルを追加した場合、動かなくなったりしますか? 無料のアプリなら問題ないようですが、有料アプリの場合にパケージを勝手に弄ると、 セキュリテイの関係でアプリが開けなくなると聞いたことがあります。
>>691 多分、内部でハッシュ値かなんか管理してて、下手にいじるとその値が変わって
動かなくと思う。
やっぱりそうですか。 自作の言語ファイルを開発者に送れば簡単に取り入れてくれますかね。
SwiftでOSXアプリ作ったらアプリファイルにlibswiftAppKit.dylibっていうファイルが作られた。 もうOS側のフレームワーク使わない方針なのかね。 次期OSが出ても保守しない限り、UIはYosemiteのまま動くってことかな? iOSは既にそういう仕組みだったよね。
サイズから見てもSwiftで既存フレームワークを使うのにちょっと何かが足りない分を補間するぐらいだろう 言っていることは全般にわたって全然違う
小さなランタイム問題か。
そうじゃない
小さなランタイム問題ってSwiftが互換性のために仮想マシンで動いてるって話だっけ?
どこかのスレでみたけど、結局バイトコードはObjective-Cと同じものを生成してるから、
関係ないって話じゃなかったけ?
ちなみに
>>694 のやつはYosemite以前のOSでSwift用ライブラリ動かすための互換ライブラリだとおもうけど。
バイトコードが一緒なら、Swiftは単純にObj-Cの上位レイヤってことか。
>>698 小さいランタイムってでかいやんけってのじゃなかったけ
Deployment Target を 10.10 にして Releaseビルド してもどかどかっと入るけど
チラっと小さいのの中見てみたけどなんでいるのかわからなんのがだなあ
もうObjective-CマスターしちゃったのでわざわざSwift始めようとは思わないんだよな。 言語オタクでもない限り、そういう開発者って多いと思う。 今後は両言語が消えることなく好みで使われていくと思う。 Appleは今後保守大変だろうな。
Appleは一人じゃないので&お金有り余っているようなので&でかいキャンパスできるので、継続は難しくないんじゃね
あー、Apple社内での Swift派 vs Objevtive-C派 の派閥争いが起こりそうな気もしないでもないなw なんの利益にもならないので、仲良く切磋琢磨協力して高めてほしいものだ
やっぱり、フレームワークの更新で、ニル撲滅するのが先決だよね。
nil返さなきゃならない場合はどうすんの?Exception?NSError?
if let文を強要するしかない。 インデントが増えてコードがキモくなるけど。
何の利点があるんだか
>>705 nilをOptionalとして返す。
で
>>706 のif letで受け取る。
話が変わるけどObjCのnilテクニックは一応使えるみたいだな。
var val = nil as String?
if val?.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) > 0 {
print("ok")
} else {
print("empty")
}
わざわざSwift的にこう書く必要はない
var val = nil as String?
if let str = val {
if val!.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) > 0 {
print("true")
} else {
print("empty")
}
} else {
print("empty")
}
>>705 修正
すまん、最後の例はこうだった。
にしてもSwiftって文字列操作がしずらい。Rangeあたりとか。
もう初めて1周間経つけど素直にObjC使い続けても良かった気がする。
var val = nil as String?
if let str = val {
if str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) > 0 {
print("ok")
} else {
print("empty")
}
} else {
print("empty")
}
「nil撲滅」に対してだったんだけど…「nil撲滅」ってどういう意味やねん
711 :
仕様書無しさん :2015/01/20(火) 17:25:15.09
NSWorkspaceのmountedRemovableMediaではMacに接続しているiPhoneが見れなくなってしまいました。 Macから接続しているiPhoneのデータを取得する方法を知ってますか?
みなさんOSXアプリ向けのアイコンってどうやって作ってますか? 年会費払って「Graphics Tools for Xcode」入れてもアイコンを一から作り始められるわけではないですよね? Graphics Tools for Xcodeはコンバータやジェネレータのみという認識なのですが、 OSXらしいヌルヌルしたアイコンを作るならGIMPやイラストレーターのような専用ソフトを使うのが常識なのでしょうか。 他になにか定番アプリでもあるのでしょうか。
GimpじゃなくてInkscapeやろ
別にGimpでアイコン作ってもいいんじゃないか? 俺はPhotoshopだが。
>OSXらしいヌルヌルしたアイコンを作るなら って意味がいまいちわからんが、Mountain Lionからだったかベクターアインコン(PDF)推し
iconutilでPDF扱えないみたいなんでけど、新しいコマンドラインツールでも入ったのか? グローバル変数にretainしないで、値を入れると 別のメソッドから呼び出したときに、全く違うクラスや値が呼び出される場合があるのって仕様なの? せめて解放されるならnilになってくれればいいのに。
RCも理解してない奴が今時なんでそんな古いバージョンのObjCを使ってるんだ
RCってなんなんねんって、Reference Counterか。初めてその省略形見たなw
iconutilってUtility to convert between '.iconset' and '.icns' filesなのに。元ファイルがPDFなのか?
なんか根本的に無知なくせに偉そうにモノ言っているのだけはわかるな
>>716 は
>>718 >>715 でPDFアイコン推奨って言ってたから、アプリケーションアイコンもPDFで作成できるのかと思ってね。
アイコン作るならiconutilだったからさ、png全種類作ってまとめるとファイルサイズ大きくなるから
できるならベクターでアイコン作りたかっただけ。
アプリ内のアイコンのみなのかな?
偉そう?教えてくださいな
retain counterが0になると、破棄されるのは分かるけど、別のオブジェクトが代入されるのは、
ユニークな名前呼び出しに見えて、ビルドするとポインタ呼び出しになり、アドレスが共有されてるって解釈でいいのかな?
しかし、環境や時と場合によって同じ操作をしても、retainしていない変数が問題なく呼び出せてしまうのは、どういう理屈なんだろうと疑問に思ってね。
アホなんかなこいつ。 ポインタに入ってるのは最初っからメモリの番地で、メモリが再利用されたら別のオブジェクトが入ってても何らおかしくないだろ。
Application Iconはビットマップだよ retainするしないとか言っている意味がわからん オーナシップを得ないで参照だけすることはできるし、オーナシップを得ないといつ対象が無くなるかわからんしっていうだけ >別のオブジェクトが代入されるのは、ユニークな名前呼び出しに見えて〜 以下、何を言っているのかイミフだな。ポインタとか知っているようで知らないんだろうなあという
>>720 >メモリが再利用されたら別のオブジェクトが入ってても何らおかしくないだろ
うむ、たまたまそういう場合もあるある。そこらポインタ周りのことを何もわかってなさそ
仕事でswiftで実装する事になったので暫くこのスレの住人になろうと思う しかしxcodeってのは糞だな リファクタリングすら出来なくてワロタ まぁこれはswiftだけっぽいが よくあれでみんなアプリ作ってるわ
Xcodeを糞だのなんだの言う前に、その糞言う仕事を受ける身分を呪うのが先だろうw
何も知らない知ったか上と身分をわきまえない逆らえない
>>723 が、なにを言うのだか
まぁそう言うなよ そんな事言ったら何も言えなくなるじゃないか 新しい事やるのは好きだし楽しくやってるよ
あ、上には逆らえないからそういう身分はわきまえているのかw
>>723 のようなしょーもない愚痴は知り合いとの飲みの席にだけにしといてくれや
ていうか俺がやってみたいから俺が決めて俺が実装してるんだけどな 上がどうのとか下っ端根性丸出しでかっこ悪いぜ とか言うと切れそうだけど
>リファクタリングすら出来なくてワロタ >まぁこれはswiftだけっぽいが ここだけでもそうだが、自分でやりはじめていきなり第一声(?)が糞だのって、マゾなのアホなの?プログラマには向いていそうで向いていなさそう。俺には単純なバグに見えるw なんで切れるとか言うのかなあ、それほどお前の言うことはたいしたことないよ?
いやいやごめんよ、喧嘩をうりに来たんじゃないんだ まったりこのスレ見てくよ
>>721 やっぱりアイコンはベクターにできないのね。
例えば、雑ですまんけど、こんな感じにグローバルなNSArrayの_arrayにretainしないで、他のNSArrayの参照を渡して
呼び出すと、問題なく呼べる場合(環境)と、全く関係ない(お前どこから来たんだよレベル)値が出力される場合があるやつのことさ
ユニークな名前なんチャラって言うのは、objc runtimeだと、変数名の文字列の名前解釈で呼び出せたりするから、
名前の文字列解釈じゃないんだなー?ってのと、変数定義でクラスを指定してるのに、全く違うクラスだったりするから
>>719 の解釈でいいのかなと思って
ただこれが、全く問題なく普通に使えちゃう環境もあるから、何故なのか教えて欲しいのさ
@interface sample : NSObject{
NSArray *_array;
}
@end
@implementation sample
-(void)適当メソッド{
_array = 何でもNSArray (retainしない)
}
-(void)呼び出し{
NSLog(@"%@", _array);
}
@end
そもそも、それはグローバルとは言わない。単なるインスタンス変数
>>732 ごめごめインスタンス変数ね
>>733 XCODEが優秀過ぎて、objcがめちゃくちゃ簡単に書けるから、基礎的な所を割とすっ飛ばしてるんだよね、よく読んでみる ありがと
ちなみにretainしない場合の、オブジェクトを呼び出したときに
それに欲しい物が入ってるかどうかを判定する場合はどうすればいいの?
nil判定だと、他のオブジェクトが入ってる場合があるから使えなくて(そもそもnilにしないとならないみたいだし)
isKindOfClassだとCFとかが代入されてると、使えないし。
retainしない場合とは、__unsafe_unretainedのことを言ってるのか? ちゃんと正確に書かないと、そこからエスパーするのは無理。 __weakも__strongもわからんようだし、それで__unsafe_unretainedは無謀。 だいたい違う型のポインタに代入しようとするとそこでwarningが出るはず。
>>734 Toll-free bridge だいたいよく使うCFは
割とじゃなくほとんど基本的なことは全部じゃねwガイドを全部読むか、入門書をか、荻原本とか読んで基本から勉強しなさいな
>>735 retainしなくても、インスタンス変数にオブジェクトを代入できるでしょ。それの話
>>だいたい違う型のポインタに代入しようとするとそこでwarningが出るはず。
自分で代入するのは、指定したクラスだよ。
retainしてないやつは、呼び出すと環境によって全く違う値に変わっちゃうんだ。
ライフタイム修飾子は、割と最近だよね、あんまり使ってないや、ARCもしかり
破棄された場合に、他のオブジェクトが入るから__weakじゃ無いな
BAD_ACCESSにもならないから__unsafe_unretainedでもない
そもそもARCじゃないから、ライフタイム修飾子は、関係ないんじゃないかな・・・
みんなARC使ってるから、こういう現象に直面してないのかな?
>>737 >retainしてないやつは、呼び出すと環境によって全く違う値に変わっちゃう
>破棄された場合に、他のオブジェクトが入る
他のポインタ値が勝手に代入されるって事を言ってるようだがw
配列がなにかでおかしな事やってないか?
所有権を獲得してないでだと勝手に解放されて解放されたメモリがたまたまばっちし他のインスタンスに割り当てられるってありうることなのに いまだにそれがわかってないんだな。自分が無知なのを&理解を深めようともしないのを棚に上げて「みんなARC使ってるから、こういう現象に直面してないのかな」ってアホかw もう百年どうどう巡りをすればいいと思わざるを得ない
>>739 お、ごめんごめん悪気は無いよ、気に障ったなら申し訳ない。
呼び出しはポインタで、retainしないと、そこが再利用されて別のオブジェクトが呼び出されるんだろうなってことは、
前のレスで聞いてるんだけど、それは正解なのかな?
百年?
retain releaseが、当たり前で、何故それをやらなくては行けないかとか、そういう話じゃなくて。
全く問題なく実行できる環境と、毎回別のオブジェクトに変わってしまう場合の違いってのは何なのか知りたいんだ。
メモリ管理ソフトとか入れて、毎回メモリ解放してるような環境の人とか限定って分けでも無さそうなんだよね
ちゃんと実証コード書いてみ。BAD_ACCESSにもならないからという、そんな確実なものを書けるなら なんか初心者に近いのにそうじゃないのを匂わせるのがムカつくんやw
>破棄された場合に、他のオブジェクトが入るから(__weakじゃ無いな) って、どういう意味?ポインタはなんとかくでも知っているだよな?Objevtive-Cではインスタンスはポインタにすぎないのも知っているよね? 「破棄された場合に、他のオブジェクトが入る」ってふつうは(?)、変数に格納されている値(アドレス)が変わると受け取るけど?だったら、そういうコードがあるのだろ(=あんたがそうしている)という結論になるけど アドレスが変わってないのに内容が変わるのは、まあメモリの再利用が濃厚。てかそれ以外はあまり考えられないってのに そういうところが初心者にしか見えないんだけどな。でも、「ライフタイム修飾子は、割と最近だよね、あんまり使ってないや」ってかなりやっていそうな雰囲気を醸し出すアホかっていう
単純にメモリが再利用されてるんだろ。 何かのインスタンス:Aを生成して、そのポインタのメモリはたったの4バイト(64bitなら8バイトか) Aを破棄した後でそこに新しいインスタンス:Bのポインタが割り当てられたってだけ。 MRCなら勝手に解放されちゃまずいものはretainするのが鉄則だろう。 propertyにしてretain属性付ければいい話。つかARC使えよw
↑ああすまん、ちょっと嘘がある。
質問者の彼アホ全開なのに本人は気付いてなさげなところが哀れ
>>743 の訂正
再利用されたのはインスタンスAが展開されていた領域な。
だからAもBもポインタ値は同じ。
MRCならAを使う側でretain、使い終わったらreleaseだろ。
そもそも所有権を持たないオブジェクトが勝手に解放されて、それを参照している部分がどうだこうだと拘るのが異常的ではあるな フツーに動いていようがなんか変だろうが(潜在的)バグに変わりがないのだから、とっとと直せっちゅうに。そんな意味ないとこに拘るなら、ちゃんと基礎を勉強することに拘れよっていうw
>>746 ARCに対してのMRCだが、Appleでは正式にはMRR (Manual Retain-Release)と呼ぶのを最近知ったw
それは知らんかった。
UXKitはiOS開発者向けの移植用KitだからAppKit自体は廃止されないだろう。 最低限のUIを提供するUXKit上で従来のAppKitを乗っけるっていう発想だと思うけど。
752 :
仕様書無しさん :2015/02/15(日) 20:46:27.75
>>751 今ならAudio Hijack 3とBRadikoが定番かな
どこの誤爆だ?
MacDeveloperで落とした10.9って、ライセンス的にどういう扱いになるの?
Yosemite向けに作成したアプリをMavericksでも動くようにしたいんだけど、
その場合、10.10以降のAPIは削除しないとAppStoreに公開できなくなるかな?
きちんとIF文で互換性判定を行ってクラッシュしない物をつくれば大丈夫そうな気もするけど、
Mavericksからみたら10.10のAPIはnon public APIになるわけだし。
下のiOSの人はアウトだったみたいなので、OSXでもアウトにならないか心配。
ttp://hmdt.jp/blog/?p=115
>>754 10.10でなかったらそこを実行しないようにするだけでいいよ。きちんとIF文で10.10だったら実行(、でなかったら代替でとか)
Frameworkそのものが10.10にしかないのだったら、FrameworkをOptionalでリンク
>>754 そのURLのとこの non public API ってのは、「ベータ」OSのAPIはまだnon public API扱いってのだろう
そんなベータOSに対応したのにベータOSのは受け付けていないのを知っていてリジェクトされたってほざいているようなところを参照しても意味ないだろうw
今更Mavericks対応なんて需要あるのか?
759 :
仕様書無しさん :2015/03/09(月) 12:40:44.23
Yosemiteの評価は需要がありそうに見える?
読めないからそういう疑問になるのだろう
いあ、でもAPIがどうこうとか明らかに無関係じゃ、、
元々、誤読した結果が >Mavericksからみたら10.10のAPIはnon public APIになるわけだし もちろん、これは明確な誤り 元ネタが明確には「一般未公開OS」のAPIとは謳ってないのだから仕方が無いと百歩譲って言えるかもしれないw 複数OSバージョン対応の経験がちょっとでもあればそんな誤読はしないと思うけど そもそもの記事が「一般未公開OS」に対応し、まだ受付を行っていないのを知っているがコードをそのままにして、申請したらリジェクトされたって、偉そうに逆恨みを連ねているだけだからな そんなアホな記事を書かなければそもそも誤読が発生しなかったかもなw
non public APIって要するにアンダースコアで始まるメソッドやクラスだろ? リジェクトされるのは次期APIでアンスコが消えた時にnon public APIを使っていた既存のアプリがクラッシュするリスクがあるからだよ。 Yosemite用APIでMarvericks向けアプリを作るだけならその問題には抵触しないはず。 きちんとMavericks用とYosemite用で処理を切り分けてクラッシュしないものを提出すれば問題ないと思うよ。
アンダースコアで始まらないのもあるけどな。Private API/Undocumented APIていう方がわかりいいだろう