Objective-C [ObjC part:7];
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2012/02/27(月) 17:21:46.39(Wikipedia:http://ja.wikipedia.org/wiki/Objective-C より)
Objective-C [ObjC part:6];
http://toro.2ch.net/test/read.cgi/tech/1313891268/
Objective-C [ObjC part:5];
http://hibari.2ch.net/test/read.cgi/tech/1279730299/
Objective-C [ObjC part:4];
http://pc12.2ch.net/test/read.cgi/tech/1239721860/
Objective-C [ObjC part:3];
ttp://pc12.2ch.net/test/read.cgi/tech/1186543111/
Objective-C
ttp://pc11.2ch.net/test/read.cgi/tech/1106983092/
Objective-C
ttp://pc5.2ch.net/tech/kako/990/990574267.html
0002デフォルトの名無しさん
2012/02/27(月) 17:23:02.21【マック】Macintoshプログラミング質問箱
http://toro.2ch.net/test/read.cgi/tech/1113058054/
*** 新・mac板 ***
Cocoaはさっぱり!!! version.16
http://anago.2ch.net/test/read.cgi/mac/1307162542/
Macでプログラミング{10}
http://anago.2ch.net/test/read.cgi/mac/1248682344/
iPod touch/iPhone ネイティブアプリ製作 ver.16
http://anago.2ch.net/test/read.cgi/mac/1312723856/
0003デフォルトの名無しさん
2012/02/27(月) 17:23:48.25Objective-C 2.0 プログラミング言語
ttp://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/
Introduction to The Objective-C 2.0 Programming Language
ttp://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html
そのほか英語
ttp://developer.apple.com/documentation/Cocoa/ObjectiveCLanguage-date.html
*** 書籍 ***
荻原本 第3版
http://amazon.jp/dp/4797368276
HMDTダイナミック本
http://amazon.jp/dp/4861006414
0004デフォルトの名無しさん
2012/02/27(月) 17:24:49.73Objective-C 2.0 プログラミング言語
http://developer.apple.com/jp/devcenter/ios/library/documentation/ObjC.pdf
Blocksプログラミングトピックス
http://developer.apple.com/jp/devcenter/ios/library/documentation/Blocks.pdf
並列プログラミングガイド - GCDとか
http://developer.apple.com/jp/devcenter/ios/library/documentation/ConcurrencyProgrammingGuide.pdf
0005デフォルトの名無しさん
2012/02/27(月) 17:26:04.20http://journal.mycom.co.jp/column/objc/
Apple のランタイムのソースコード (10.7.3)
http://www.opensource.apple.com/source/objc4/objc4-493.11/
英語のサイト
Objective-C 入門
http://cocoadevcentral.com/d/learn_objectivec/
Objective-C Style 1, 2 (変数名のつけかた等)
http://cocoadevcentral.com/articles/000082.php
http://cocoadevcentral.com/articles/000083.php
Mike Ash さん(Audio Hijack の中の人)のブログ、 Obj-C のランタイムの話が良く出る
http://mikeash.com/?page=pyblog/
C++ と Objective-C の文法の比較
http://ktd.club.fr/programmation/objective-c.php
0006デフォルトの名無しさん
2012/02/27(月) 17:42:32.870007デフォルトの名無しさん
2012/02/27(月) 17:46:24.95GNUstep
0008デフォルトの名無しさん
2012/02/27(月) 17:51:53.100009デフォルトの名無しさん
2012/02/27(月) 17:55:19.700010デフォルトの名無しさん
2012/02/27(月) 18:54:54.43入れてみたけど何か動かなかったしアプリが作れるわけじゃない見たいですね
0011デフォルトの名無しさん
2012/02/27(月) 18:56:26.820012デフォルトの名無しさん
2012/02/27(月) 18:56:33.080013デフォルトの名無しさん
2012/02/27(月) 19:09:06.43>>7 もしくはスレ違い
0014デフォルトの名無しさん
2012/02/27(月) 20:41:07.745万台で買えるじゃないか・・・。
0015デフォルトの名無しさん
2012/02/27(月) 20:43:04.64macっていまいちよくわかんないけどmacを買わないと開発できないんですよね?
macとmac miniって同じ何須加?
0016デフォルトの名無しさん
2012/02/27(月) 20:46:40.76mac miniもMacだよ。
iMacもMac book もMac ProもMac。
今俺が開発してるのもMac mini。
Mac miniには通称梅・竹・松のエディションがあって、
俺は松(Server)を使ってる。
梅が一番安い。メモリも自分で簡単に交換出来る。
HDDの換装は、分解する作業が必要になる。
0017デフォルトの名無しさん
2012/02/27(月) 20:46:57.74PCでMac miniの筐体と似たようなのあるだろ?あれも普通のPCだろ。そゆこと
0018デフォルトの名無しさん
2012/02/28(火) 08:54:53.720019デフォルトの名無しさん
2012/02/28(火) 09:29:09.96乙ぽ
0020デフォルトの名無しさん
2012/02/28(火) 14:27:43.66乙ですぅ
0021デフォルトの名無しさん
2012/02/29(水) 15:21:23.250022デフォルトの名無しさん
2012/02/29(水) 19:21:41.420023デフォルトの名無しさん
2012/03/02(金) 04:37:48.39勝手な処理多すぎだろ 素直に出力しろやクズ
0024デフォルトの名無しさん
2012/03/02(金) 04:47:37.880025デフォルトの名無しさん
2012/03/02(金) 07:02:21.470026デフォルトの名無しさん
2012/03/02(金) 16:04:39.390027デフォルトの名無しさん
2012/03/02(金) 16:11:06.930028デフォルトの名無しさん
2012/03/02(金) 18:40:09.840029デフォルトの名無しさん
2012/03/02(金) 18:41:53.300030デフォルトの名無しさん
2012/03/03(土) 14:04:22.43嫉妬してるやつだけ
0031デフォルトの名無しさん
2012/03/03(土) 18:04:13.260032デフォルトの名無しさん
2012/03/04(日) 12:35:18.83@selectorで指定されるメソッドの引数がどのように確定してるのかご指導ください。
addTarget等で指定されたメソッドの第一引数は何故かaddTargetのメッセージを受けたオブジェクト自身が格納されます。
第二引数以降があるメソッドに任意のオブジェクトを引数で渡したい場合はどうするんでしょうか?
0033デフォルトの名無しさん
2012/03/04(日) 14:04:54.92@selectorのメソッドを呼び出したいのなら、performSelector: のバリエーションを見るといい
addTarget云々ということは、addTargetで指定したアクションメソッドに追加で引数を与えたいとかなんだろうけど、
- (IBAction)actionMethod:(id)sender
は決まり事なので、無理です
0034デフォルトの名無しさん
2012/03/05(月) 09:58:49.97いらん時間取られるしエラーになるならきちんとどこがエラーなのか表示しろと。
ゴミ以下だな
0035デフォルトの名無しさん
2012/03/05(月) 10:11:15.660036デフォルトの名無しさん
2012/03/05(月) 11:23:52.920037デフォルトの名無しさん
2012/03/05(月) 12:44:32.68/ \____ \
| |
| |
/\ |
`/ \______/
| / ∠__ __ヽヽ
|ミ≦ヒOソヽ /ヒO≧彡|
|i | | / ノ
|| 人ッ) | //
/ | ト-< ニ´/(_)
||⌒\_/ヽイ
|| ミ|
ノ||`ー――-"  ̄ヽ
|/ |
0038デフォルトの名無しさん
2012/03/05(月) 15:12:22.490039デフォルトの名無しさん
2012/03/05(月) 21:09:35.16身の丈を知り、時には諦めることも大切だよ
0040デフォルトの名無しさん
2012/03/05(月) 22:00:11.290041デフォルトの名無しさん
2012/03/05(月) 22:01:12.06なんと、そこに狙いがw
0042デフォルトの名無しさん
2012/03/05(月) 22:13:54.42Xcodeならエラーはきちんと表示されるけど。
0043デフォルトの名無しさん
2012/03/05(月) 22:19:03.56残念ながらこの世には、すでに数万、数十万というiOS appが
Obj-Cで書かれリリースされているのだよ。。
0044デフォルトの名無しさん
2012/03/05(月) 22:51:43.260045デフォルトの名無しさん
2012/03/05(月) 23:00:24.05とは思うわ
0046デフォルトの名無しさん
2012/03/05(月) 23:09:04.070047デフォルトの名無しさん
2012/03/05(月) 23:10:47.930048デフォルトの名無しさん
2012/03/05(月) 23:26:18.08このスレはObjective-Cのスレですが
CやC++やJava(やC#?)は別にスレがあるのでそちらへどうぞ
0049デフォルトの名無しさん
2012/03/06(火) 00:27:44.730050デフォルトの名無しさん
2012/03/06(火) 00:34:31.380051デフォルトの名無しさん
2012/03/06(火) 10:49:05.680052デフォルトの名無しさん
2012/03/07(水) 09:44:46.17種類は出るけどな
これが糞言語と言われる所以
0053デフォルトの名無しさん
2012/03/07(水) 10:05:54.12えltu?
0054デフォルトの名無しさん
2012/03/07(水) 10:13:15.26どうして馬鹿は自分を上においてもの言うのかな。まあだから馬鹿だと周知してくれているんだけど
0055デフォルトの名無しさん
2012/03/07(水) 12:27:08.210056デフォルトの名無しさん
2012/03/07(水) 12:47:43.960057デフォルトの名無しさん
2012/03/07(水) 20:34:52.89それさ、言語の問題か?。。
0058デフォルトの名無しさん
2012/03/07(水) 20:36:50.77>>39です
諦めという選択も時には必要だという一般論を言っただけです
0059デフォルトの名無しさん
2012/03/07(水) 23:42:00.29んす。ダシに使ってすまん
0060デフォルトの名無しさん
2012/03/08(木) 21:11:58.800061デフォルトの名無しさん
2012/03/08(木) 21:14:25.850062デフォルトの名無しさん
2012/03/08(木) 21:16:12.780063デフォルトの名無しさん
2012/03/08(木) 22:23:58.810064デフォルトの名無しさん
2012/03/08(木) 22:49:45.460065デフォルトの名無しさん
2012/03/08(木) 23:22:13.75まあ、それくらい変化が速いってことなんだけど
0066デフォルトの名無しさん
2012/03/09(金) 00:16:23.78世の中には古いのをメンテナンスしなければならない人、古いOSにも対応したのを書かなければならない人もいるのだよ
>>65
全ての人がそれに習ってくれればいいのに、意固地な人もいるw
Xcode 4 使ってて、Xcode 3 使うとなんかキビキビしてたりする。Xcode 2.5 は何もやってないのかってぐらいもっと速いけど
Xcode 4 使ってて、Xcode 3 使うと、なんか古って思う俺もまた別にいるけどw
0067デフォルトの名無しさん
2012/03/09(金) 09:30:28.41IBPlugin...
0068デフォルトの名無しさん
2012/03/11(日) 13:27:19.420069デフォルトの名無しさん
2012/03/16(金) 09:51:26.21@//正規表現リテラルもはよw
0070デフォルトの名無しさん
2012/03/20(火) 07:28:20.71書くの手伝って。
http://goo.gl/A5MD1
http://goo.gl/x5DWE
0071デフォルトの名無しさん
2012/03/20(火) 08:23:13.23なんかいろんな言語スレに張ってるな。広告収入目当てか?
0072デフォルトの名無しさん
2012/03/20(火) 10:32:01.660073デフォルトの名無しさん
2012/03/22(木) 16:00:18.84過渡期にあるからか知らんが仕様に一貫性がないのに嫌気がさしてやめたわw
まあiphoneアプリバブルでかなり稼がせてもらったしそこは感謝してるが二度と触りたくない言語 ついでに未来もない
0074デフォルトの名無しさん
2012/03/22(木) 16:08:48.85iPhoneアプリでごっそり稼ごうと思ったにさっぱり儲からなかった。Objective-Cが糞言語のせい
0075デフォルトの名無しさん
2012/03/22(木) 16:51:25.61あのぶどうは酸っぱい
0076デフォルトの名無しさん
2012/03/22(木) 17:49:37.94新しい機/仕様が加わっただけなのに
新しい機能/仕様を使わなくてもいいのに。使わなかったら書く量が増えるだけなのに
gcc (C,C++) なんて(メジャー)バージョン上がる毎にエラーてんこもりになるのに
かなり稼がせてもらったしというほど理解もなにもしてない、ましてやこんなスレに書くほど書き込んでいなく挫折した、初心者に毛が生えた程度のヤツの戯れ言
0077デフォルトの名無しさん
2012/03/22(木) 17:53:35.01○使ったら書く量が減るだけなのに
新しい機能/仕様の派生理由からすれば
0078デフォルトの名無しさん
2012/03/23(金) 05:29:32.490079デフォルトの名無しさん
2012/03/23(金) 05:47:37.950080デフォルトの名無しさん
2012/03/23(金) 06:35:50.62>>70 を見てみたが、アンチ臭がちらほらと。そんな文面無い方がここに貼るんだったらいいのにw
素晴らしいらしいからどれだけwikiが充実するか見物ですね
0081デフォルトの名無しさん
2012/03/27(火) 22:35:26.31どうすれば2つとも実装できるでしょうか?
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)mPopoverController {
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)mPopoverController2{
}
0082デフォルトの名無しさん
2012/03/28(水) 00:20:13.180083デフォルトの名無しさん
2012/03/28(水) 00:51:54.60自己解決したとしても。。
引数名だけ違い(セレクタが同じ)のオーバーロードはできません
が理由でしたとちゃんとシェアして欲しいなぁ、後進のためにも
0084デフォルトの名無しさん
2012/03/28(水) 01:08:52.99すみません。出来ない仕様だったんですね。
ひとつのソースでif文で分けることで解決しました。
0085デフォルトの名無しさん
2012/03/28(水) 01:26:59.83Objective-Cに限らず、オブジェクト指向言語は基本そうだよ
メソッド名が同じの場合、引数の数がちがうか、引数の型がちがってなければいけない
まあ、Objective-Cの場合は、引数の数が違うと:の数も違うから、
メソッド名(セレクタ)も異なってくるけどね
0086>>85の訂正
2012/03/28(水) 01:40:20.42Objective-Cは基本的にメソッドオーバーロードはできないわ
あくまでセレクタが異なってる必要がある
Objective-Cの仕様上、引数の数が違う場合は:の数が異なるので
これを他のOOPにおけるメソッド名が同じで引数の個数が違う
メソッドオーバーロードと同じとみなせば、
これに限っては事実上できることにはなる
0087>>85の訂正
2012/03/28(水) 01:51:04.53- (void) setValue:(int) arg_x : (int) arg_y : (int) arg_z;
- (void) setValue:(int) arg_x : (int) arg_b;
上のメソッドのセレクタは@selector(setValue:::)
下のメソッドのセレクタは@selector(setValue::)
ただ、普通は
- (void) setValueWithX: (int) arg_x Y: (int) arg_y Z: (int) arg_z;
- (void) setValueWithX: (int) arg_x Y: (int) arg_b;
のような感じで各引数のキーワードを入れこんで命名するから
上のメソッドのセレクタは@selector(setValueWithX:Y:Z:)
下のメソッドのセレクタは@selector(setValueWithX:Y:)
のように明らかにセレクタが違う感じになる
なので、結局メソッド名が同じメソッドをオーバロードしていないという
ことがよくわかると思う
0088>>85の訂正
2012/03/28(水) 01:52:04.540089デフォルトの名無しさん
2012/03/28(水) 02:49:23.540090デフォルトの名無しさん
2012/03/28(水) 03:34:32.180091デフォルトの名無しさん
2012/03/28(水) 04:38:35.98http://www.nicovideo.jp/watch/so17374154
【撫子日和】平和と護憲は両立するのか?[桜H24/3/27]
http://www.nicovideo.jp/watch/so17374481
核保有準備国宣言!★ティモシー義明の「超克超論」第2回
http://www.nicovideo.jp/watch/so17343279
H24/03/27 参院沖北特別委・義家弘介【何故犬HKは竹島等の天気をやらない】
http://www.nicovideo.jp/watch/sm17376071
03.27 参議院外交防衛委員会 山本一太議員(自民)
http://www.nicovideo.jp/watch/sm17376022
西村眞悟先生の時事通信 24年3月26日使命感の欠落集団=売国奴
http://www.nicovideo.jp/watch/sm17374611
【2012.3.25】第5回フジテレビ抗議デモ ダイジェスト
http://www.nicovideo.jp/watch/sm17372584
【告知】韓国は竹島から即刻出て行けin新大久保〜新宿(デモ行進)
http://www.nicovideo.jp/watch/sm17376177
【日経】不安を利用する人々【原発ゼロ】
http://www.nicovideo.jp/watch/sm17379095
初音ミク、モスクワで歌う 震災復興アピール
http://www.nicovideo.jp/watch/sm17373692
0092デフォルトの名無しさん
2012/03/28(水) 07:12:45.580093デフォルトの名無しさん
2012/03/28(水) 08:21:57.90そうだよ
引数名のみ違う状況だから、Obj-C以外でもオーバーロードにならないね
って話だよ
かつ、Obj-Cではオーバーロードがないから、かりに引数の型変えてもダメだよ
というお話
0094デフォルトの名無しさん
2012/03/28(水) 10:09:49.94-(void) foo {
Object<0>::CreateInstance( * activeDeviceInfo );
}
と書いたら、リンク時にエラーが出てしまいます。
Objectは template<int i > Object { ... }; と定義しています。
ObjC++の制限に引っかかってますか?
0095デフォルトの名無しさん
2012/03/28(水) 11:14:38.90m(_ _)m ご丁寧に解説ありがとうございました。
>>90
popoverの処理なんですが、
2種類のポップオーバーを用意していて、
それぞれ別の動作をさせたかったんです。
if文で判断できるのでひとつのソースで済んだのですが。
0096デフォルトの名無しさん
2012/03/28(水) 18:28:59.11いつの間にか C++ の template は関数の引数と同じように使えるようになったのか
実クラスで置き換えるというのでしか使ったことないなあ
0097デフォルトの名無しさん
2012/03/28(水) 19:18:08.80template<int N>
class TheObject {
public:
int myValue;
static
TheObject *CreateInstance( void ) { return new TheObject( N ); }
TheObject( int initValue ) { myValue = initValue; }
};
で
-(void) foo {
TheObject<0> *object = TheObject<0>::CreateInstance();
NSLog( @"%d", object->myValue );
delete object;
}
で、問題無くリンク/実行できたよ
Objective-C++ 側のファイル名を .mm にしてる? .m なら単なる Objective-C、.mm にして Objective-C++ だよ
0098営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 10:04:45.940099営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 10:20:36.00出来ればCの知識もあったほうがいい。
Objective-CはCが土台だから。
0100営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 10:40:19.840101営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 10:44:28.33エロw
そういえば「初めてのC」とかいうふざけた名前の参考書があったね。
0102営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 10:47:16.10ありがとう。初めてのCという本探してみるよ。
0103営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 13:32:19.69やさしいCで入門して、ポインタを詳しく書いてる本を別に読む方が良い
0104営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 15:07:42.200105営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 16:24:01.900106営利利用に関するLR審議中@詳細は自治スレへ
2012/03/29(木) 18:47:40.190107営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 02:59:38.310108営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 08:10:06.770109営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 08:33:20.220110営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 13:21:02.67K&Rは説明の簡潔さと練習問題の秀逸さが売り
コンピュータの基本構造知ってれば、初心者でも十分読める
が、今時コンピュータの基本構造理解してる初心者は居ない
0111営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 14:09:57.720112営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 15:16:44.61C言語のポインタが分からないってどういうことなの?
0113営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 15:58:22.220114営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 17:10:23.61objcでそんなことする場面はほとんど無いから無視して良さそうだね
...
iOSは弄った事ないけど生でbitmapいじり倒したりが当たり前とかないよね?
0115営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 17:48:47.57仕事でなら使えないヤツと思うけど
0116営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 18:05:51.76仕事としてたら偉い人みたいな言い方はどうかと思うよ?
そもそも、どうしてポインタが分からないのか?って話を聞きたかっただけだし
てか、Objcを仕事で使うとポインタと配列を混ぜて使うのが当たり前になるの?
それもどうかと思うけど
0117営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 18:19:46.60別に偉いってわけじゃないよ。仕事として使うなら他人に読まれるってことだよ。読まれた時にスキルは自ずと判断される。意識的にも無意識的にも
配列をポインタでってのは、極めて普通のことだけど?混ぜて使うとか意識しないで使う
Objective-C でというより、C でね。もちろん、Objective-C は C だし、C の配列を使う機会はあまり無いけどそれは別の話
0118営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 18:21:15.930119営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 18:44:00.45例えばさ、
char array[100];
と
char *array = (char *)malloc( 100 );
は、同じじゃないとめんどくさくない?上は char[i] でしか使えなくて、下は *(char + i) でしか使えなかったら
たぶんこういうのは、割と普通に下も char[i] でも可能ってのは理解できるんじゃないかなあ(お前じゃなくて一般的にね)
俺は、なるほどなるほどって理解したつもりでいたら、いきなり **p って出てきて、なんじゃこりゃ??としばし悩んだ口だな
0120営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 19:11:28.19そんなことはめったにしないObjective-Cではつまずくことはめったに無い
って事で良いんじゃないの?
わざわざポイインタは覚えないと駄目!とかいう必要がないような気がするんだけど
0121営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 19:28:31.93char[i]
*(char + i)
って、なんなんねんっ。array[i] 及び *(array + i) ね
>>120
俺もそう思うけど、
たぶん、インスタンス自体がポインタだし、NSError の受け取りなんてほとんど、ポインタのポインタだから基本だろってことなんじゃないの
まあ、ポインタってわからんけど、インスタンスの受け取り用の変数っていう理解だけでも使えるんだろうけど
また、Core は自ずと C の世界だし、他の C のライブラリとかもあるし、ポインタを理解して身につけたら、いろいろ広がるんじゃないの (iconv なんてちょーかっちょいいじゃんw)
と、思うけど、初心者にいろいろアレコレってのも、何をどうどっちを先にってのはわからんね
0122営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 19:42:42.16(レーザー)ポインタ的な使い方は理解できるらしいから
ダブルポインタだろうとトリプルポインタだろうと問題ないと思うよ
0123営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 19:57:23.34ふ〜む、なるほどねえ
0124営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 20:12:57.90アセンブラやればポインタなんてこんな簡単なものなのに何で今まで悩んでいたのが馬鹿らしくなれる。
0125営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 20:31:44.35同意。アセンブラ覚えてからCをやったから、ポインタの理解には苦労しなかった。
0126営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 21:30:17.70カッコつけ過ぎのみっともないコードになっても構わないなら関係ないけどw
0127営利利用に関するLR審議中@詳細は自治スレへ
2012/03/30(金) 22:31:42.32見た目の格好良さよりも、見た人が正しく理解出来る事を優先してる。
0128営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 11:51:58.59実際それやって嬉しい事があった人っているのかな
0129営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 12:03:55.76WebkitはC++のコアをObj-Cでラップしたものだし、Foundationの多くは
CのCoreFoundationへのブリッジだよ。
0130営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 12:08:16.52Core Foindation はむしろ、Objetive-C のオブジェクトを C から扱えるようにしたものだと思う。
0131営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 13:16:48.68すんません個人レベルでの事例を聞きたかったのです。
つまり20年前に趣味で書いたコードがObjCが流行ってるのを機会に掘り起こしてみたら
案外あっさり動いてビビったとかそういう事例
Apple環境の裏はほぼCorC++である事はデバッグしたらすぐ分かるので承知してます
0132営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 13:21:55.13とか聞けると上手な設計を追求する励みになるんと思っての質問ですた
0133営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 18:08:02.13gcc のバージョン上がるだけでたくさんエラー出るから、どうなんだろうな
Pure C だったらさほどの労力で流用できるだろう。hello world はいまだ hello world で動くしなw
(C の標準関数はバッファーオーバーフローを回避するというの以外は全く変わってない)
しかし、OS 依存のコードが大部分で Pure C に分離できるものは微々たる量でしかないのは、Windowsでも書いたことあるならわかるでしょ
0134営利利用に関するLR審議中@詳細は自治スレへ
2012/03/31(土) 19:52:10.72他人を追求したいならお断りだ
自分で上手な設計を追究したいんならすればいい
がんばれよ新人
仕事でプログラム組み出すと分かるけど
三ヶ月前の自分は他人、上手な設計を心がけておかないと死ぬよ
0135営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 07:56:43.27同意。
特に.NET導入で大きく変わったなと思う。
0136営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 12:28:34.820137営利利用に関するLR審議中@詳細は自治スレへ
2012/04/01(日) 13:51:00.490138営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 08:50:46.180139営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 13:15:12.970140営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 17:26:30.33「我輩は猫である」「坊ちゃん」等、青空文庫の名作が無料で読める
iPhone対応アプリ sReader Lite (無料)
http://itunes.apple.com/jp/app/sreader-lite/id492514436
0141デフォルトの名無しさん
2012/05/05(土) 01:11:37.11原理はJavaVMに似てるって話だけど
0142デフォルトの名無しさん
2012/05/05(土) 01:35:19.59それは.NETじゃないの。吐き出されるのは中間コードとやらでってのは。C#はネイティブも吐き出すことできるんだっけ
Objective-Cはネイティブコードだよ。メソッドの呼び出しやクラスの実装が動的ってだけで、バーチャルマシンとは全く別もの
0143デフォルトの名無しさん
2012/05/05(土) 01:40:11.37そのコードがインタプリタ的な動作をするってだけ
0144デフォルトの名無しさん
2012/05/05(土) 01:43:38.94まあ、メソッドの呼び出しがコードのほとんどを占めると言えばそうかもしれないが
0145デフォルトの名無しさん
2012/05/05(土) 01:51:28.73まあ、単なるジャンプテーブルじゃないってのはわかるけどね
0146デフォルトの名無しさん
2012/05/05(土) 01:53:47.36.NETは最初に全ての中間言語をネイティブコードに変換して実行する
初期実行は遅いけどネイティブコードのアプリと同等程度の速度を実現してる
中間言語を読みながら実行するJavaとはまた違う
0147デフォルトの名無しさん
2012/05/05(土) 02:06:02.23JavaもJust-In-Time Compilerってあるよねえ
0148デフォルトの名無しさん
2012/05/05(土) 02:14:42.76通常、実行環境が固定されているObjective-Cには無用の長物
JavaのJITコンパイラは.NETの実行方式と同じ発想のものって認識でいいと思う
0149デフォルトの名無しさん
2012/05/05(土) 02:15:17.77そろそろやめとく
0150デフォルトの名無しさん
2012/05/05(土) 02:21:50.050151デフォルトの名無しさん
2012/05/05(土) 02:23:04.09んす。だねえ。雑談お付き合いどうも
0152デフォルトの名無しさん
2012/05/05(土) 22:35:17.060153デフォルトの名無しさん
2012/05/05(土) 22:38:20.16Apple公式の日本語和訳「スレッドプログラミングガイド」
https://developer.apple.com/jp/devcenter/ios/library/japanese.html
の「カスタム入力ソースの定義」から始まる内容が全く理解できないんですが、
そもそおもカスタム入力ソースを使うと何が便利なんでしょうか?
0154デフォルトの名無しさん
2012/05/06(日) 02:14:19.99簡単に言うと、「スレッド間通信を行う低レベルな方法」です。
0155デフォルトの名無しさん
2012/05/06(日) 20:57:45.16RunLoopSourceクラスとRunLoopContextクラスを作ったんですが、
このクラスをどうイジれば何がいい感じになるのかさっぱりです。
なんとなく、ランループの状況に応じてコールバック関数が呼ばれるんだろうな
ってとこまではイメージできますが、もっと具体的な使い方を知りたいです。
誰かお暇な方いたら自分が作った下記の3ファイルを使って何か
サンプル作ってもらえないでしょうか?
AppDelegateクラス。入力ソースの登録、解除をするっぽい。
RunLoopContextクラス。コマンドバッファの管理とランループの連携を行うらしい。
RunLoopSourceクラス。純粋に単なるコンテナオブジェクト。
http://upload.saloon.jp/src/up5313.zip.html
0156デフォルトの名無しさん
2012/05/09(水) 19:24:36.04サンプルを作ってみた。(↓このURLは2ヶ月以内に自動的に消滅します^^)
http://homepage.mac.com/stripe/EchoThread.zip
MacOSX10.7用のコマンドラインツールです。
MainスレッドからWorkerスレッドへMessageを送信すると、
単純にそれをMainスレッドに送り返してきます。
Appleのドキュメントのコードだと、MainスレッドもWorkerスレッドも同じオブジェクト、
という構成になっているっぽくて俺的に分かりづらかったので、クラス構成は変更しています。
0157デフォルトの名無しさん
2012/05/12(土) 05:19:28.18@"\\s" や @"\\w" といった正規表現のメタ文字を含むパターンをマッチさせたいのですが
"\\s" という文字列そのものとして扱われてしまっているらしく、メタ文字として正しく機能してくれません
メタ文字を正しく機能させるにはどうすればいいのでしょうか?
コード:
NSRegularExpression *pattern =
[[NSRegularExpression alloc] initWithPattern:@"\\s" options:0 error:&error]];
NSString *subject = @" --\\s";
[pattern firstMatchInString:subject options:0 range:NSMakeRange(0, str.length)];
結果:
<NSSimpleRegularExpressionCheckingResult: ...>{3, 3}
(空白の位置ではなく、"\\s"という文字列にマッチしてしまっている)
0158デフォルトの名無しさん
2012/05/12(土) 05:28:06.57Macだと\とバックスラッシュの文字コードって違うんですね
自決しました
0159デフォルトの名無しさん
2012/05/12(土) 09:20:33.41>自決しました
よせw
0160デフォルトの名無しさん
2012/05/12(土) 11:30:43.730161デフォルトの名無しさん
2012/05/12(土) 11:31:39.700162デフォルトの名無しさん
2012/05/12(土) 14:42:30.130163デフォルトの名無しさん
2012/05/14(月) 19:20:22.210164デフォルトの名無しさん
2012/05/15(火) 14:15:08.57マクロ多用で俺様言語にしてもいいですか?
#define AlocInit(T) [[T alloc] init];
みたいな
0165デフォルトの名無しさん
2012/05/15(火) 14:16:26.54俺とかかわる人だったら殺すw
0166デフォルトの名無しさん
2012/05/15(火) 14:34:15.240167デフォルトの名無しさん
2012/05/15(火) 14:47:54.80俺は全く気にしないな
ステップ単位で追うのにその行がなにをやりたいというのがわかればいいので、ゴテっと分けられると追うのに邪魔。その行が具体的に何をってのは追うのにそれほど重要じゃないからなあ
もちろん具体的に何をって知る必要もあるのは当然でその場合はその行だけに注目しているのだから、横スクロールするなりするのは苦痛ではない
とか言ってみる
0168デフォルトの名無しさん
2012/05/15(火) 15:05:12.580169デフォルトの名無しさん
2012/05/15(火) 15:06:34.620170デフォルトの名無しさん
2012/05/15(火) 15:10:03.12後で自分で見直したりとか、ソース追うのに毎回毎回いちいち引数とか注意しているの?なるほど、そういう人もいるんだな
俺は、流れを読むのにとりあえず必要としないし、一度注目して理解したのはとりあえずある期間は憶えているので、毎回毎回その行を見るのに引数に注意する必要無いからというのだけどな
0171デフォルトの名無しさん
2012/05/15(火) 15:10:49.28ああ、Xcode 4 になって一つのウィンドウで全てってなら尚更だよね。そういうのならわかるわあ
0172デフォルトの名無しさん
2012/05/15(火) 15:14:44.26最近のタブ強要みたいな流れはうれしくないデス。
0173デフォルトの名無しさん
2012/05/15(火) 15:22:05.33タブはワークスペースの切り替えとして使うと割といけることに最近気付いた
0174デフォルトの名無しさん
2012/05/15(火) 18:39:55.76すいません。サンプルコードのみてたですが、上のコードはどういういみなんですか?
よくわかりません。鍵括弧ってどういうこと?
0175デフォルトの名無しさん
2012/05/15(火) 18:44:37.010176デフォルトの名無しさん
2012/05/15(火) 19:14:31.260177デフォルトの名無しさん
2012/05/15(火) 19:24:19.38ESRenderer っていうプロトコルを実装しているインスタンス(を返します)
0178デフォルトの名無しさん
2012/05/15(火) 19:40:02.36よく見たらその文法は初めてだなw
ググっても、ないよーっ
- (id<ESRenderer>)init ならいっぱいあるw
0179デフォルトの名無しさん
2012/05/15(火) 19:41:25.440180デフォルトの名無しさん
2012/05/15(火) 20:14:04.69三ヶ月後にも思い出せるかな?
0181155
2012/05/15(火) 21:50:08.04ありがとうございます!!今DLしました!とうかレス遅くなってすみません!
2日ほど待って諦めてて今日思い出して久しぶりにこのスレに来ました!
本当に助かります!早速確認します!ありがとうございます!
0182デフォルトの名無しさん
2012/05/16(水) 23:46:45.34appDelegateで起動時に呼ばれるのは
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
return YES;
}
となっています、テンプレートと同時に作られるviewControllerファイルにあるViewControllerのクラスはどこで呼ばれるのかわかりません。
xcode4.3でストリーボードありを選択してつくりました。
viewControllerのクラスはどこで呼ぶように定義されているのでしょうか?
気になって眠れません。
0183デフォルトの名無しさん
2012/05/17(木) 00:24:50.52[SDK]iPhoneアプリ開発初心者質問箱25[touch][iPad]
http://anago.2ch.net/test/read.cgi/mac/1335398820/
0184デフォルトの名無しさん
2012/05/26(土) 02:22:41.85nilへのメッセージ送信が可能で
プロパティがゲッターセッターの自動生成だとすると
0185デフォルトの名無しさん
2012/05/26(土) 07:35:45.23( ´∀`) にるぽ
0186デフォルトの名無しさん
2012/05/26(土) 13:17:39.52Objective-Cにも、値がゼロのポインタ値は普通に存在する。
ヌルポが存在しないのは、OCamlのほうだ。
0187デフォルトの名無しさん
2012/05/26(土) 13:38:10.76ぬるぽはあるけど
0188デフォルトの名無しさん
2012/05/27(日) 05:55:44.15ぬるぽが発生するのは何でJava
0189デフォルトの名無しさん
2012/05/27(日) 07:33:40.260190デフォルトの名無しさん
2012/05/29(火) 15:51:59.270191デフォルトの名無しさん
2012/06/02(土) 22:05:22.18デリゲートのドキュメントをgatherheaderdocコマンドで生成すると
「Protocols」フォルダ配下に「◯◯Delegate」のようなデリゲート名でフォルダが作られて、
その配下に「index.html」「toc.html」の2ファイルが作成されるようですが、
なぜか自分の場合は「toc.html」のみで「index.html」が作成されません。
https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html
0192191
2012/06/02(土) 22:33:16.68ちなみにみなさんどのドキュメントツール使ってますか?
今からappledocいじってみます
0193デフォルトの名無しさん
2012/06/03(日) 17:11:42.27英語でぜんぜんわからんわ。
詐欺師
金返せ
0194デフォルトの名無しさん
2012/06/03(日) 17:43:54.90満足したか?
0195デフォルトの名無しさん
2012/06/03(日) 21:07:21.67笑いなんて要らねーんだよ。
普通でいいんだよ。贅沢は言わない。普通で。
iphoneの開発はしたいから本買ってきたらアップルのどこかでダウンロードしろって書いてあったから
しようと思ったら英語でわからんかった。
お前らはどうやって分かった?
英語できるやつばかりか?
0196デフォルトの名無しさん
2012/06/03(日) 21:14:40.250197デフォルトの名無しさん
2012/06/03(日) 21:22:42.26で、何をダウンロードしろって書いてあるんだ?
基本的な開発ツールなら、App Storeからダウンロードできるはずだが
0198デフォルトの名無しさん
2012/06/03(日) 21:24:17.95ダウンロードは英語で download と書かれるのだよ
てか、マジで言っているのか...
マジのはずはねーよなあ。プログラミングで英語必須とは言わないが、逆切れするのはありえないからなあ
0199デフォルトの名無しさん
2012/06/03(日) 23:09:33.870200デフォルトの名無しさん
2012/06/04(月) 03:55:26.46なんか1億とかすごい値がかえってくるんだけど
原因しってる人いますか?
0201デフォルトの名無しさん
2012/06/04(月) 04:04:54.51勘違いでした。
javaのMath.random()みたいなもんかと思ってた!
0202デフォルトの名無しさん
2012/06/04(月) 04:11:14.08Cの乱数生成はちょっと面倒くさいよ。
苦しんで覚えるC言語とかいうサイトに範囲指定して乱数生成する公式が乗ってたかと思う。
応用すれば実数の乱数生成も出来るよね。
0203195
2012/06/04(月) 09:51:42.99http://libro.tuyano.com/index3?id=544001&page=2
で、実際やってみたら全く違う画面がでてきてダウンロードできない。
詐欺じゃねーかこのクソサイト
訴えてやる!!!
ダウンロードのスペルくらいわかるわボケ!
おれはジョブズになる資格すらねーのかよ
0204デフォルトの名無しさん
2012/06/04(月) 10:13:11.810205デフォルトの名無しさん
2012/06/04(月) 10:23:41.28いやいや、スペルぐらいもわからないとしか思えないんだけど
ああ、Downloads は download と同じ意味だよ。ちょっと教えるのが不親切だったね。ごめんなさい
てか、ホームページに詐欺って。いくら搾取されたのかね?もうネタはいいよw
0206デフォルトの名無しさん
2012/06/04(月) 11:17:41.58そんな資格ある人存在せんわw
0207デフォルトの名無しさん
2012/06/04(月) 11:28:22.380208デフォルトの名無しさん
2012/06/04(月) 12:26:26.820209195
2012/06/04(月) 13:55:29.47>>203のリンク先の画像で Xcode and ios SDKって書いてあって
ここをダウンロードって○で囲ってあって
で、リンク先からその場所と文字を探したらその場所にその文字がなく全く違うことが書いてあった。
つまり俺はこのサイトを作ったヤツに嘘をつかれた被害者なわけだ。
stay foolishってなんだよ知らねーよ。
ネタじゃねーよボケ!
嘘だと思うなら見てみろよ
なぁ、俺が何か悪いことでもしたのか?
何でいつもこんなに虐げられなきゃいけないんだよ!
0210デフォルトの名無しさん
2012/06/04(月) 14:07:59.640211デフォルトの名無しさん
2012/06/04(月) 14:11:13.38そして今はiOS5になってるから、iOS4のその絵とは変わってて当然
0212デフォルトの名無しさん
2012/06/04(月) 14:20:36.18英語が読めないのはもっとダメ
たとえXcodeが手に入れられたとしても、
「全部英語で意味不明」
「(古いサイトに)書いてあることが出来ない」
と同じ事を喚く事になるだけ
時間の無駄だから他の有意義なことをしたほうがいい
0213デフォルトの名無しさん
2012/06/04(月) 14:27:07.310214デフォルトの名無しさん
2012/06/04(月) 14:40:19.16えー? Downloads って書いてあるのに。なんかの記号とか意味わからないアルファベットの羅列だったんでしょ?
普通は Downloads の意味がわかっていたら、そこだなと思うはずなんだけど、そういう普通の感すらが働かないなら、プログラミングなんて無理無理無理
天に召しますジョブズの親切だよ、たぶんw
>>211
Developer登録すら今は必要ないみたい。Dev ページからもダウンロードは App Store に導かれる
0215デフォルトの名無しさん
2012/06/04(月) 18:54:27.360216デフォルトの名無しさん
2012/06/04(月) 19:38:08.21そのうち英語が読めるようになるけど。
0217デフォルトの名無しさん
2012/06/04(月) 21:07:19.03アクションは設定したイベント(トリガー?)の状態になったら実行されてメソッド•プロパティを実行する
って認識でいいの?
アウトレットとアクションの配線がいまいちピンとこない•••
わかるようなわからないような•••
xib上で設置したボタンとかテキストフィールドでただのハリボテとして使う時はアウトレットの配線はしなくていい(コンセントの設置?)
ボタンを押して何かしたい時にはアウトレットを配線、アクションも設定って感じ?
0218デフォルトの名無しさん
2012/06/04(月) 21:15:10.17アウトレットは大体合ってる。プログラムの中で使う時に使う。
例えば、テキストフィールドの中身を取り出す為にテキストフィールドをアウトレットで繋いでおくとか
アクションも大体合ってる。
何らかの動作をしたい時に動作と繋ぐ。
ボタンを押して何かしたいだけなら、アクションを繋ぐだけでいいです
0219デフォルトの名無しさん
2012/06/04(月) 21:54:17.81結局のところ複雑になればなるほどコードで書いた方がいい
0220デフォルトの名無しさん
2012/06/04(月) 22:33:16.720221デフォルトの名無しさん
2012/06/05(火) 00:33:56.93アウトレットは俺のぉ(モノ)
アクションはお前がぁ(やれ)
って、わからんか。俺も何言っているのかわからん
0222195
2012/06/05(火) 06:11:47.46そしたらよ、名前、住所、職場の名前、Eメールとかを書けってきて、
そのとおり入力したにも関わらずダメだってなったわ。
ふざけんなよ。
俺は嘘偽りを何一つ言ってないわ
なのに俺だけやらせてもらえなかった。
ふざけんな
俺が何したっていうんだよ!
アップルの嫌がらせか!
0223195
2012/06/05(火) 06:15:22.99だめだったのはEメールのとこだってよ。
ヤフーのメールアドレスじゃダメなのかよ。
ヤフーだって立派な会社だぞ!
ヤフーはグーグルとかと違ってインテリ臭がしない情弱御用達だからダメってか、クソ!
0224デフォルトの名無しさん
2012/06/05(火) 06:23:46.350225デフォルトの名無しさん
2012/06/05(火) 06:41:43.48いままで Apple Store を利用したこと無いのか。てか、Apple ID を持っていないのか。iTunes Store も使ったことが無いんだろうなあ
いい加減アホ真似にも飽きてきたので>>224を超えるオチでおオチをつけてくんなまし
0226デフォルトの名無しさん
2012/06/05(火) 06:42:57.14○App Store
Apple Store でもあながち間違いではないけどw
0227195
2012/06/05(火) 07:17:12.27仮にインテルMACじゃなかったとしたら、それが原因でobjective-cさせてくれないなんてとんだ嫌がらせだな!
アップルのIDくらい持ってるわ
0228デフォルトの名無しさん
2012/06/05(火) 07:45:51.08マジでそれは嫌がらせレベルなんだがマジでそうなんどす。ついで言うとインスコの不具合もそこそこあるらしいべよ
0229デフォルトの名無しさん
2012/06/05(火) 11:05:13.80どうすればいいの?
できるだけリアルな感じでやるのが目標なんだ
Opengl esっての学べばいいの?
Xcode使ってボタンを押すと文字が表示できたら受け取ったり
簡単なrpgはできるようになったけど、まだCuiのRPGと変わらないくらい低レベルだから
もっと高レベルなことやりたいんだ
0230デフォルトの名無しさん
2012/06/05(火) 11:09:16.600231デフォルトの名無しさん
2012/06/05(火) 11:29:44.370232デフォルトの名無しさん
2012/06/05(火) 11:35:01.690233デフォルトの名無しさん
2012/06/05(火) 11:57:51.53記事の下の方にあるのを同じ風にiPhone上で再現してみたいんだ
ただ再現するんじゃなくて、矢印ボタンも付けて右にXcm...とか指定できたりバウンドしたり
そんな感じでシミュレーションしてみたい
そごで聞きたいのは、これを表現するにはobjective-cのアニメーションを用いるのか
もしくはopengl esを用いるのか、はたまたUnity,Javaじゃないといけないのか?ってことなんだ
わかりにくくてごめん、一応Obj-cについてってことでスレチではないよね?
0234デフォルトの名無しさん
2012/06/05(火) 12:11:23.29その程度の単純なアニメーションくらい幾らでも方法はある。
どっちにしろスレチだが。とりあえずMac板のiPhone開発スレへ行け。
0235195
2012/06/05(火) 12:58:40.67クソヤロウ!
0236デフォルトの名無しさん
2012/06/05(火) 13:40:22.62どれ使ってもできる。
0237デフォルトの名無しさん
2012/06/05(火) 13:48:16.72それならobjective-cで十分可能だと思う
OpenGLって3Dを扱いたいときに使うといいんじゃないかな
0238デフォルトの名無しさん
2012/06/05(火) 15:55:19.31とりあえず、まる一個UIViewひとつでCore Animationでやってみりゃいいやん。
それが糞重かったら、まる一個CALayerひとつCore Animationで
それでも糞重かったら、ひとつのUIViewで丸一個一個をCore Graphicsで自分でアニメーション
まだまだ糞重かったら、OpenGLつかって
やりゃいっぱい勉強できるだろう
まあ 、ひとつのUIViewで丸一個一個をCore Graphicsで自分でアニメーションが一番手っ取り早いと思うけど
195は飽きたから>>234と言っているが、ここでもいいよw
0239195
2012/06/05(火) 20:43:36.30プログラミングとはプログラムを書き、実行することが本質なのではない。
プログラミングを理解できた多少頭の良いと思った自分に対して、
プログラミングを理解できなかった人間に対してククク…とあざけ笑い優越感を得ることがプログラミングの本質である。
いまもこうやって俺のことを笑っているんだろう。
みんなして
ククク…
と。
0240デフォルトの名無しさん
2012/06/05(火) 21:07:48.21プログラミングどうのこうの以前の話しかお前はしていないだけど、それすらわからないんだから、プログラミングなんて無理無理無理
お前はここに居座るのは笑われるのが目的じゃないの?お笑いの線では無理無理無理というほどではないと思うよ
0241デフォルトの名無しさん
2012/06/05(火) 21:19:05.98よく見ると実行速度の順番が一部違ってないか?
0242デフォルトの名無しさん
2012/06/05(火) 22:07:46.14ん?Core Animation vs Core Graphics で自分アニメーションでってこと?
0243デフォルトの名無しさん
2012/06/05(火) 22:11:58.03そこまで理解できたら話は早い
後は諦めるだけだ
0244デフォルトの名無しさん
2012/06/05(火) 22:57:04.58それをTapしたら下からTabBerみたいのがちょこって出てくるようなの作りたいんだけどどうすればいいのん?
こういうのって、クラス?ってのを作らないといけないの?
それとも一からマシン語で書くのかな?
0245デフォルトの名無しさん
2012/06/05(火) 23:06:12.190246デフォルトの名無しさん
2012/06/05(火) 23:32:46.50>それが糞重かったら、まる一個CALayerひとつCore Animationで
>それでも糞重かったら、ひとつのUIViewで丸一個一個をCore Graphicsで自分でアニメーション
Core Graphicsで自分でアニメーションということは、丸を書いて消して、書いて消しての繰り返しになるんじゃないか?
CALayerだと、いちいち書き直さなくても移動できるんじゃなかったっけ?
0247デフォルトの名無しさん
2012/06/05(火) 23:36:45.40その言葉どおりに作ればいいんじゃないか?
画面に小さなボタンを配置するぐらい簡単だろ?
TabBerみたいなのを表示/非表示に切り替えるのもできるだろ?
あとは、この2つを組み合わせるだけだぞ。
0248デフォルトの名無しさん
2012/06/05(火) 23:40:16.76まあ、消去&描画のくり返しという、やっているのはどっちにしても同じじゃないのかなあ
どんだけGPUに丸投げしての差とかはわからないけど
とりあえず、なんかクラスとして(ちょっと)重そうとかいうのででので、そのへんは適当です
0249デフォルトの名無しさん
2012/06/06(水) 00:45:52.010250デフォルトの名無しさん
2012/06/06(水) 06:38:17.270251デフォルトの名無しさん
2012/06/06(水) 16:20:20.34読んで予め用意されてるCocoaTouchを使って簡単なことはできるようになったんだけど
例えば、画面遷移する時って下からシュピィン!ってでてくるけどこれを真ん中から迫ってくるようにとか
したい時とかって出てくると思うんだよね、こういうのってそこまで用意されてない(よね?)し自分でコード
書くしかないんだと思うんだけど、どう書けばいいのか想像つかない
っというかコードでそんなことできんのか最近疑ってるレベル
UINavigationBarのタイトルを置き換える方法探しても見つからないしメソッドってのを自分で
作らないといけないのかな
考えてたら禿げてきた
0252デフォルトの名無しさん
2012/06/06(水) 16:33:02.48簡単にできるよ。標準のにちょっと手を加えるだけで
とりあえず標準を使いこなして何ができるできないが判断できないとね。標準をそれなりに理解しつくすのがまずは先だね
0253デフォルトの名無しさん
2012/06/06(水) 18:18:59.45Core Graphicsは100%CPUによるレンダリングだから、比較的遅いと思うぞ
0254デフォルトの名無しさん
2012/06/06(水) 19:11:22.66Quartz ExtremeレベルのはiOSでも実装されているじゃないかなあ
こんな◯だけのはどっちにしろたいした変わらないじゃないの
0255デフォルトの名無しさん
2012/06/06(水) 19:14:24.21ライブラリありませんか?
0256デフォルトの名無しさん
2012/06/06(水) 19:22:06.880257デフォルトの名無しさん
2012/06/06(水) 19:27:20.000258デフォルトの名無しさん
2012/06/06(水) 19:30:32.510259デフォルトの名無しさん
2012/06/06(水) 19:41:06.37安物買いの銭失い的なもんだなw
0260デフォルトの名無しさん
2012/06/06(水) 19:52:42.370261デフォルトの名無しさん
2012/06/06(水) 20:00:54.030262デフォルトの名無しさん
2012/06/06(水) 20:19:04.450263デフォルトの名無しさん
2012/06/06(水) 20:23:56.70CPUがメインメモリにグラフィックを描くのがCore Graphics
GPUがビデオメモリにグラフィックを描くのがOpenGL
描画するバッファ(メモリ)が根本的に違うので、両方を同時に使うのは不可能。
ただし、それぞれで描いたグラフィックを後から重ね合わせるのは可能。
「ひとつのUIViewで丸一個一個をCore Graphicsで自分でアニメーション」
なんてことをやったら、100%CPUで処理する形にしかならないと思う。
> Quartz ExtremeレベルのはiOSでも実装されているじゃないかなあ
iOSには、Window Serverが無いから、Quartz Extremeも無いんじゃないのか?
0264デフォルトの名無しさん
2012/06/06(水) 20:36:10.78そこまで遅くないし、普通はつなぎ目にしか使わない。
0265デフォルトの名無しさん
2012/06/06(水) 21:16:17.75うん。遅いというヤツのマシンスペックを知りたいものだな
>>261
うん。本当に素敵だよなw
0266デフォルトの名無しさん
2012/06/06(水) 21:23:24.83クラス宣言部に C++ クラスおいたら一挙にコンパイル速度低下したから、
早々にObj-C++部を他の.mファイルからは隠したな。
つなぎ目にしか使わないというより、つなぎ目にしか使っちゃ駄目。
0267デフォルトの名無しさん
2012/06/06(水) 21:28:23.50うん、そりゃ通常のと比べて遅いことは遅いよ。でも、毎回全てコンパイルするわけじゃないでしょ?開発サイクル的には全く遅くないけど
俺はめんどくさかったから、すべて mm にしちゃったけどw
0268デフォルトの名無しさん
2012/06/06(水) 21:30:01.080269デフォルトの名無しさん
2012/06/06(水) 21:45:10.63同じく全部Objective-C++でコンパイルしてる。
下手な奴はクラス実装全部含めた全部インクルードみたいなの平気で使うからな。
0270デフォルトの名無しさん
2012/06/06(水) 21:58:55.600271デフォルトの名無しさん
2012/06/07(木) 09:31:16.910272デフォルトの名無しさん
2012/06/07(木) 10:11:26.73もうこれから先は自分から解決方法探せる奴じゃないと生き残れない
Webにノウハウ上げる奴はほとんどいなくなってしまった(英語圏は別)
0273デフォルトの名無しさん
2012/06/07(木) 10:58:48.04選択肢が複数あることが理解できないみたい
T字路なのに前だけ見て先に進めないって言ってる感じ
0274デフォルトの名無しさん
2012/06/07(木) 11:27:53.970275デフォルトの名無しさん
2012/06/07(木) 12:10:40.59( ( ・ω・) ブヒン
しー し─J
0276デフォルトの名無しさん
2012/06/07(木) 13:54:55.32Objective-C++はプリコンパイルドヘッダ効かないの?
0277デフォルトの名無しさん
2012/06/07(木) 14:13:11.63プリコンパイルドヘッダの使い方間違ってないか?
0278デフォルトの名無しさん
2012/06/07(木) 14:20:45.23あーすまん。俺はまだObjCよく知らんのだけどC++のライブラリ持っていこうと考えてるんだ
ClangがC++にも対応したって何かで読んだからコンパイル速度は問題ないと思ってたけど
無駄にインクルードすると遅くなるってことはPCHが使えないみたいな弱点があるのかと気になって
0279デフォルトの名無しさん
2012/06/07(木) 14:27:29.69コンパイル速度なんか気にしたことないや。ライブラリなら何度もコンパイルする訳じゃないし、気にしすぎじゃない?
0280デフォルトの名無しさん
2012/06/07(木) 14:27:54.60ちょっと触ったら、あっちもこっちもコンパイルし直すはめになるみたいな話でしょ。
全体通して一回ビルドするだけなら大差ないと思う。
0281デフォルトの名無しさん
2012/06/07(木) 14:48:25.830282デフォルトの名無しさん
2012/06/07(木) 14:52:25.06プリコンパイルヘッダは普通に使える。
プロジェクト作ったときに、プロジェクト名-Prefix.pchってファイルが自動手に作られてるだろ。
共通のマクロとか定数の宣言はここに書いとく。 但しこいつを変更すると全ソースが再コンパイルされる。
0283デフォルトの名無しさん
2012/06/07(木) 23:45:28.86各種オブジェクトならidでそれらしいことができるけれど、プリミティブな型
(例えばintやdouble等)は出来なさそうに思います。
0284デフォルトの名無しさん
2012/06/07(木) 23:48:25.43もちろん不可能だよ。
0285デフォルトの名無しさん
2012/06/07(木) 23:49:13.53効率的な事はおいといて。
0286283
2012/06/08(金) 00:11:45.58>284
やはりそうですか。確認が取れてすっきりしました。
>285
この方法も面白いのですが、パフォーマンスを落ちてしまうので残念ですね。
0287デフォルトの名無しさん
2012/06/08(金) 00:28:01.06C++ではメソッドの引数の参照渡しがあります。
(void)hoge(int &value)
objective-Cでもこのような参照渡しは可能しょうか。
- (void)hoge:(int &)value →参照渡しはNG(コンパイルエラー)
- (void)hoge:(int *)value →ポインタ渡しはOK
0288デフォルトの名無しさん
2012/06/08(金) 00:31:33.17の Table 6-1 Objective-C type encodings にポインタ型はあっても参照型がないように、
C++の参照は無理。
0289デフォルトの名無しさん
2012/06/08(金) 00:38:45.88Objective-C++ならできる。
0290デフォルトの名無しさん
2012/06/08(金) 00:41:34.15ありがとうございます。この資料を探していました。
0291デフォルトの名無しさん
2012/06/08(金) 00:47:06.18#import <Foundation/Foundation.h>
#import <objc/runtime.h>
@interface Test : NSObject
- (void)hoge:(int &)test;
@end
@implementation Test
- (void)hoge:(int &)test {
test += 1;
}
@end
int main(int argc, const char * argv[]) {
Test * test = [[Test alloc] init];
int foo = 1;
printf("%d\n", foo);
[test hoge: foo];
printf("%d\n", foo);
printf("%s\n", @encode(int &));
printf("%s\n", @encode(int *));
return 0;
}
実行結果
1
2
^i
^i
ポインタと同じ扱いでした。(;^ω^)
0292288
2012/06/08(金) 00:48:07.300293デフォルトの名無しさん
2012/06/08(金) 01:05:13.15まだobjective-Cの知識が不十分なのでobjective-C++を使うのを躊躇していましたが、
objective-C++を使う方が自分のやりたかったことをスマートに実装できそうです。
アドバイスありがとうございました。
0294デフォルトの名無しさん
2012/06/08(金) 01:21:32.59Objective-CのAPIも使えるし、Toll Free Bridgeあるから基本的な
オブジェクトもCレベルで互換性あるし。
0295デフォルトの名無しさん
2012/06/08(金) 22:02:02.39http://www.stripe-net.jp/cocoa/program/blog20091112.html
http://www.stripe-net.jp/cocoa/program/blog20100423.html
http://www.stripe-net.jp/cocoa/program/blog20100607.html
0297デフォルトの名無しさん
2012/06/14(木) 19:44:04.23似たような画面(UITableView)を複数作るとして
親クラスに基本的なコンポーネントの生成を任せたいんだが
デリゲートに子クラス自身を渡す方法について悩んでいる
1.
インターフェースでUITableView * _tableView;
と宣言してしまい、子クラスから直接
_tableView.delegate = self;
と代入
2.
デリゲートプロトコルを宣言したid型プロパティまたは
セッターメソッドを用意して
子クラスの初期化時に代入(コンポーネント生成前)
3.
親クラスでのプロトコルでdelegate先取得のメソッドを必須にして
親クラス初期化時に子クラスがreturn selfで返す。
どれでも出来たんだけどどれがベストかなあ。
あと3みたいなのってJavaとかだと抽象クラスでフレームワーク的に
よく使うと思うんだけどObjective-Cではあまり使わないのかな
オーバーライド必須メソッドを親クラスで呼んでコントロールするという
0298デフォルトの名無しさん
2012/06/14(木) 20:02:06.10+ (id)sharedTableView {
return TheOyaClass; //的な
}
でも作って、
子クラスの init (とか)の中で [super sharedTableView].delegate = self; とか。
0299デフォルトの名無しさん
2012/06/14(木) 20:31:25.84self はインスタンスを生成したクラスなんだから。つまり小クラスであるのだから
親クラスもDelegateプロトコルに準拠だけしておけば何も問題なさそうだけど
0300デフォルトの名無しさん
2012/06/14(木) 21:05:27.32それってプロパティに近いですよね。
4.2からは実装部だけでインスタンス変数が宣言できるので
なるだけ隠したいというのが発端でした。
>>299
あ、今やったらできました。
以前やったときは子を呼んでくれなかったんだけど
実装ミスだったようです。。。
子クラスでは必要な場合にオーバーライドして
initパターンで最初に親を呼んでから自分の処理実装で目当ての物ができそうです。
メソッドが長いので冗長ではありますが。。。
0301デフォルトの名無しさん
2012/06/14(木) 22:31:20.76Id<Adelegate> delegate;でBクラスオブジェクトでA.delegate=self;、とするとアクセサメソッドでAクラスのプロトコルメソッドをBクラスオブジェクト名義で全部実行て事でいんですか??
0302デフォルトの名無しさん
2012/06/14(木) 23:01:12.97と、Aクラス内(でなくてもいいんだけど)で実行され、delegate の AdelegateMethod:... が呼ばれるだけ
BクラスオブジェクトでA.delegate=self と事前にしているなら、delegateがBクラスオブジェクトなんだから、Bクラスのメソッド(AdelegateMethod:...)が呼ばれるだけ
としか言えない
0303デフォルトの名無しさん
2012/06/14(木) 23:41:51.94なんとなく思うのだが。
一つのnibファイルを、複数のcontrollerクラス(子クラス?)でロードするとかじゃダメだったのか?
基本的なコンポーネントの生成を任せるために親クラスを用意する必要あるのか?
0304デフォルトの名無しさん
2012/06/14(木) 23:57:20.03事前にA.delegate=selfしてる場合なんですけど、その時はAクラスのADelegateMethodの内容に書かれている内容→BクラスのAdelegateMethodに書かれている内容、という流れになるんですかね??
0305デフォルトの名無しさん
2012/06/15(金) 00:16:25.90ん??普通Delegateを用意している(本当はクラスも全く関係ないけど、とりあえず )AクラスにDelegateメソッド(>>302でいう AdelegateMethod:...)は実装しないよ
なので、BクラスのADelegateMethodがAクラスのどこかのメソッドから呼ばれるだけ
また、Bがなんかのクラスの小クラスであっても、親クラスのADelegateMethodが自動的に呼ばれることは無いよ
必要なら、BクラスのADelegateMethodで[super ADelegateMethod:...]を呼ばなければならい。親クラスの処理を先にやりたいならBクラスのADelegateMethodの頭のほうでそれを、後でやらせたになら後ろのほうでそれを
0306デフォルトの名無しさん
2012/06/15(金) 00:24:39.03Delegateのまえに、@protocolの事は知っているのか?
0307デフォルトの名無しさん
2012/06/15(金) 00:46:51.58うーむ、例えばテーブルビューを使うとなるとUITableViewDelegateとUITableViewDataSource(スペル合ってるかな、、)を使って最低セルの数とセルの内容を決めるメソッドを書かなきゃいけないですけど
その場合はデリゲートを使って数と内容を決めるメソッドをオーバーライドみたいにしてると思ったんですけど違うんですかね??
>>306
なんとなく位なら、、
0308デフォルトの名無しさん
2012/06/15(金) 01:16:43.161 [U]外交儀礼;(軍隊・宮廷などの)儀礼, 慣習.
2 条約原案, 条約議定書;補足協約, 協定付随書.
3 ((the P-))(フランス外務省の)儀礼局.
4 《医学》プロトコル, (研究・治療などの)実施要綱.
5 (実験などの)観察記録.
6 《コンピュータ》プロトコル, 通信規約:ネットワークの接続手順.
7 《哲学》プロトコール, 命題(protocol proposition).
8 儀礼上のしきたり, エチケット.
9 Objective-CにおけるJavaのインターフェースに相当するもの
0309デフォルトの名無しさん
2012/06/15(金) 02:03:37.79IBを使わないでコーディングしています。
親のViewDidLoadで共通部品生成
子のViewDidLoadで
[super ViewDidLoad]
の後に差分のコンポーネント生成とか
入力チェックなんかの共通処理は親でやりたいなと
0310デフォルトの名無しさん
2012/06/15(金) 02:11:24.42オーバーライドじゃないよ。
プロトコルはメソッドの宣言の集まり。元の実装がないのだからオーバーライドも何も元がない。
従ってプロトコルを採用し、実装する側はメソッドをイチから実装する。
0311デフォルトの名無しさん
2012/06/15(金) 02:11:37.33>メソッドをオーバーライドみたいにしてると
うん、違う
メソッド本体はどこにも無いよ。>>308にある通りインターフェース(Cで言えばプロトタイプ宣言)だけ
メソッド本体はその例えでいうとUITableViewDelegateやUITableViewDataSourceプロトコルを実装するクラスにってこと
0312デフォルトの名無しさん
2012/06/15(金) 02:49:56.65今までデリゲートはオーバーライドみたいなことをしていてテーブルビューで言えばプロトコルに準拠したメソッド上のどこかでテーブルビューを作っていたと思っていたんですけど、
あのプロトコルメソッド群は本当に只々数値を返したり引数を受け取って色々したりするだけ(当たり前だけど、、)なんですな。
テーブルビューで言うとテーブルビューオブジェクトはdelegate,datasourceプロパティを使ってUITableViewDelegate,UITabelViewDataSource準拠したメソッドを使って自身を設定してるのかな??
0313デフォルトの名無しさん
2012/06/15(金) 03:44:44.49オーバーライドタイプだとして(そういうのが無いわけでもない)も、自分で実装したメソッドで super でオーバーライドした元を呼んだりしなければ、Delegateメソッドで他に何かをしているとかは無いんだけど
テーブルビューは枠組みを提供しているのであって、ユーザサイド(貴方や俺やテーブルビュー使ってなんか作る人ね)固有と思われるのをUITableViewDelegateやUITabelViewDataSourceで取得、通知しているってのだけど
0314デフォルトの名無しさん
2012/06/15(金) 03:50:01.040315デフォルトの名無しさん
2012/06/15(金) 05:44:12.25個人負債の増加速度は経済協力開発機構(OECD)加盟国で3位と平均を大きく上回った。
大韓商工会議所が14日に発表した「個人負債現況と政策課題」報告書によると、
2010年の韓国のGDPに対する個人負債の比率は81%でOECD平均の73%より高かった。
これは財政危機を陥っているスペインの85%に迫る水準だ。ギリシャの61%より20ポイント高い数値だ。
個人負債増加幅も急速に拡大していうる。2006年以後鈍化した個人負債増加率は2010年に前年比2.4ポイント上昇の9.8%を記録した。
【今日の感想】この記事を読んで・・・
面白い (40件)
悲しい (2件)
すっきり (1件)
腹立つ (0件)
役に立つ (6件)
http://japanese.joins.com/article/707/153707.html?servcode=300§code=300
0316デフォルトの名無しさん
2012/06/15(金) 08:15:49.25{
[hoge methodB]
}
引数に渡したクラス(protocolBを実装してる)によって処理が変わるメソッドの書き方はこれであってますか?
0317デフォルトの名無しさん
2012/06/15(金) 09:37:41.99あってる
0318デフォルトの名無しさん
2012/06/15(金) 09:55:53.580319デフォルトの名無しさん
2012/06/15(金) 12:12:34.31ありがとうございます
「メソッドがありません」エラーがでてしまったので質問しました
構文があってるなら、実装が悪いのかな…探してみます
0320デフォルトの名無しさん
2012/06/15(金) 15:46:15.93if ([hoge respondsToSelector:@selector(methodB)]) {
}
で囲った方が安全だよ。
0321デフォルトの名無しさん
2012/06/15(金) 16:06:14.81そうするとメソッドが無い場合(ようするにデリゲートがnilの場合)
処理を行わないって訳だな?
こいつは良い情報!
0322デフォルトの名無しさん
2012/06/15(金) 16:07:19.470323デフォルトの名無しさん
2012/06/15(金) 16:32:16.94デフォルトはどっちかなと調べたらデフォルトがrequired。
>>320を使う事は滅多に無さそうだ。
0324デフォルトの名無しさん
2012/06/15(金) 17:12:11.18>ようするにデリゲートがnilの場合
optionalメソッドでデリゲートが実装してないの場合ね
0325デフォルトの名無しさん
2012/06/15(金) 19:39:51.14> IBを使わないでコーディングしています。
> 親のViewDidLoadで共通部品生成
IBを使わないコーディングをしているのに、ViewDidLoadを利用するのって変じゃないか?
いったい何がしたいの?
0326デフォルトの名無しさん
2012/06/15(金) 20:35:42.04普通に使うけどそんなに変か?
0327デフォルトの名無しさん
2012/06/15(金) 20:41:53.34もちろん普通に使うよ。
つまり、IBを使っているということだろ?
0328デフォルトの名無しさん
2012/06/15(金) 20:48:10.690329デフォルトの名無しさん
2012/06/15(金) 20:55:34.020330デフォルトの名無しさん
2012/06/15(金) 21:02:37.820331デフォルトの名無しさん
2012/06/15(金) 21:56:30.080332デフォルトの名無しさん
2012/06/15(金) 22:33:59.700333デフォルトの名無しさん
2012/06/15(金) 22:54:35.64viewDidLoadは、nibファイルがロードされてViewが生成された後に呼ばれるメソッドだろ?
nibファイルが関係するなら、当然IBを使うってことじゃないのか?
それに、nibファイルを使わずに、自前でViewを生成する場合は、loadViewの方を利用するんじゃないのか?
0334デフォルトの名無しさん
2012/06/15(金) 23:17:39.360335デフォルトの名無しさん
2012/06/16(土) 00:10:20.630336デフォルトの名無しさん
2012/06/16(土) 00:28:32.64> loadViewの後でviewDidLoadは何もおかしくはない
もちろん、それは何もおかしくない。
でも、今回はなぜかloadViewの話が出て来ない、代わりにviewDidLoadの中で自前のViewを生成することになってるだろ?
つまり、nibファイルによってViewが生成され、さらに自前でもViewを生成すると。
しかも生成するのが共通部品ということなら、普通にnibファイルの中に入れちゃえば良かったのでは?
今回の話では、共通部品(UITableView)を生成する「親クラス」と
親クラスで生成した部品を利用する(UITableViewDelegate)「子クラス」がある。
この2つのクラスが、派生・継承の関係にあるから、話が複雑になってしまったのではないかと。
それらのクラスが、別々の独立したクラスなら、もっと単純な方法が取れたんじゃないかなと。
0337デフォルトの名無しさん
2012/06/16(土) 00:40:01.360338デフォルトの名無しさん
2012/06/16(土) 00:43:57.91nibを使おうが使わずにloadViewでコードで作成しようが、どっちにも対応できるだろう。nibを使ってないそうだが問題ないどころかより適しているだろう
後半は何を言っているのかわからん。なにをひとりでカラわまりしているんだ?
0339デフォルトの名無しさん
2012/06/16(土) 00:45:15.910340デフォルトの名無しさん
2012/06/16(土) 00:46:08.730342デフォルトの名無しさん
2012/06/16(土) 01:04:44.910343デフォルトの名無しさん
2012/06/16(土) 01:23:24.44ちょっとUIViewとUIViewControllerの役割りの違いとか勉強した方がいいんじゃない?
0344デフォルトの名無しさん
2012/06/16(土) 01:30:30.15あとはグダグダ言っているだけw
0345309
2012/06/16(土) 01:42:25.81布留川さんのプログラミングバイブルと
所さんのUIKit詳解リファレンスを参考にしていますが
両者とも取り立ててloadView自前で実装していなかったので
意識しておりませんでした。
状況としては
http://cheebow.info/chemt/archives/2010/11/loadviewviewdid.html
と同様ですがViewDidLoad時点では
デフォルトのViewが生成されているようですね。
UIViewContolerを継承した自作の中の
ViewDidLoadでself.addSubViewを行って期待通りの動作をしています。
0346デフォルトの名無しさん
2012/06/16(土) 02:11:32.320347デフォルトの名無しさん
2012/06/16(土) 03:13:42.61読みました。loadView部分のコードをコピペして
いままでviewDidLoadに書いていた部分を移動しました。
本に乗ってたサンプルだとテーブル作った時点でデータ取りにいってたので
delegateとDataSourceの設定だけViewDidLoadに書いてreloadDataすることで
満足のいく形になりました。
IBは使えるようになったほうがいいですか?
AppleはIB推しなのでしょうか?これからは主流になるでしょうか?
GWTや.NETでコードで配置するスタイルに慣れているのですが...
AndroidやMetroアプリも両方の手法を用意しているようですが...
0348デフォルトの名無しさん
2012/06/16(土) 03:37:32.65うん、使えっ!Apple推しというかそもそもニコイチ。発生元のNeXTから
例えばあ、これから出るかもしれない、iPhone の変なのとか、コードに埋まっている、数値いじったりするよりは、nib で分けておいた方がいいと思うけどなあ
nib 使わないヤツはちょっと変態だと思う、俺は。別に好き好きでやってるんだろうからどうでもいいけど
本ではnibで説明するのが面倒だから、コードでじゃないのかなあ。まあ変態wが書いているのかもしれないけど
0349デフォルトの名無しさん
2012/06/16(土) 05:13:41.84インスタンスヴァリアブルに直接アクセスするのではなくアクセッサを介して行うべきだ,と聞いたのですが
インタフェースとインプリメンテーションでインスタンスヴァリアブルの挙動を変えたい場合,
ようするに外からはreadonlyにしたいけれども, クラス内ではreadwriteにしたいとき,どのようにすべきなのでしょうか?
インタフェースにはreadonlyで宣言し,実装ファイルではクラスエクステンションを用いて,
プロパティ宣言をreadwriteでオーバーロードしようとすると,
Property attribute in continuation class does not match the primary class
と怒られてしまうのです.
0350デフォルトの名無しさん
2012/06/16(土) 05:37:08.38インスタンス「変数」でいいよw
Hoge.h
@interface Hoge
@property (readonly) id hogeValue;
@end
Hoge.m
@interface Hoge ()
@property (readwrite) id hogeValue;
@end
@implementation Hoge
@synthesize hogeValue;
...
@end
で、別にエラーにならずに、ちゃんと機能するけど?
0351デフォルトの名無しさん
2012/06/16(土) 06:02:25.51ていうか最近の無名カテゴリって結構やりたい放題出来るよね。
0352デフォルトの名無しさん
2012/06/16(土) 06:21:32.30ありがとうございます。
readwriteだけだと上手くいくんですね。
strong, readwrite, atomicだと警告が出ますが
readwriteだけでも強参照にはなるのでしょうか?
0353デフォルトの名無しさん
2012/06/16(土) 09:12:54.31readonly 以外の部分は同じじゃないとダメ
0354デフォルトの名無しさん
2012/06/16(土) 15:51:20.56ありがとうございます.
なぜか, readonlyの方だけstrongをつけていなかったのですが, 確かに, readonly/readwrite以外同じにしたら警告が消えました.
サブクラスの実装を, スーパークラスと同じ実装ファイル内に書いて, クラスエクステンションを使えば, 親クラスのプロパティを隠蔽しつつ, サブクラスからはアクセス出来るように出来るので, 便利ですね.
しかし, プロパティを介してアクセスを行うと,インスタンス変数にアクセスする度にアクセサメソッドの呼び出しの処理や, さらにatomicにしているといちいちロックの処理が挟まれ, 無駄な処理が多くなる気がするのですが皆さんどうされてますか?
0355デフォルトの名無しさん
2012/06/16(土) 16:00:17.46なるかどうかわからないのであれば気にしなければいい
atomicはたいして意味がないから基本nonatomicでいい
0356デフォルトの名無しさん
2012/06/16(土) 19:33:41.60http://m.ruvr.ru/data/2012/06/16/1295821940/4RIA-618757-Preview.jpg
米食品医薬品局(FDA)は、健康に害を及ぼす可能性があるとして米国市場に韓国製海産物製品を入れないよう求めた。
14日ロイター通信が伝えたところでは、韓国製の海産物の中にヒトの糞便の痕跡が見つかり、この事は、胃腸の病気を
引き起こすノロウイルスが食べ物の中に存在する可能性を意味する、との事だ。
問題となっているのは、韓国製のカキ、ホタテなどの貝類やイクラなどで、生のものも又、缶詰入りのもの、さらには別の
方法で加工された製品も含まれている。
ロイター通信によれば、今のところ駐米韓国大使館からは、何のコメントも出されていない。
http://japanese.ruvr.ru/2012_06_16/78294694/
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
0357デフォルトの名無しさん
2012/06/16(土) 19:59:01.73気になるなら直接インスタンス変数使えばいいんじゃないの
getterはatomicの時(スレッド間で同期が必要なもんとか)にしか利点が無いような
setterは利点あるし、わざわざインスタンス変数直接ってのをするほど使わないような
0358デフォルトの名無しさん
2012/06/17(日) 00:26:28.79@synthesize window = _window;
とインスタンス変数を作成するのに
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
と直接_windowを使わずにプロパティアクセスにしてるのはどんな意図なんだろう?
全部このスタイルで書いた方がいいのかな
0359デフォルトの名無しさん
2012/06/17(日) 00:40:30.86ソースファイルのARCの有り無しでretain/releaseを書けない/書かなければならないとかいう矛盾も吸収してくれる
など、気まぐれな方針変更も極一部を書き換えるだけで済む
0360デフォルトの名無しさん
2012/06/17(日) 00:42:03.14なにいってんだおまえ
@synthesizeはインスタンス変数の生成じゃあない
0361デフォルトの名無しさん
2012/06/17(日) 00:43:07.440362デフォルトの名無しさん
2012/06/17(日) 00:43:10.930363デフォルトの名無しさん
2012/06/17(日) 01:01:25.342011年頃の同じくHellowWorld出すサンプルで
そもそもApple自身の中でコードの作法が違ってるからな…
0364デフォルトの名無しさん
2012/06/17(日) 06:40:36.95ありがとうございます
うーんバンバンdispatch_asyncしてるのでatomicの方が安全かなと思うのですが難しい所ですね
atomicにしてても, インクリメント等するときや複数のプロパティをまとめてゲットしなきゃいけないときはさらに外側で@synchronizedしないといけなかったりするので
@synchronizedばっかりになってオーバーヘッドになりそうな気も
0365デフォルトの名無しさん
2012/06/17(日) 11:21:33.43それは、「平行処理プログラミング」について勉強すればいい。
そうすれば、@synchronizedを使わずに済ませる方法が分かる。
ちなみに、「マルチスレッド・プログラミング」と「平行処理プログラミング」は違う。
0366デフォルトの名無しさん
2012/06/17(日) 12:15:37.27平行処理とマルチスレッドってどう違うの?
0367デフォルトの名無しさん
2012/06/17(日) 17:20:39.66マルチスレッドの方は、ただ単純に複数のスレッドを使うだけ。
平行処理の方は、複数のCPUコアを使う高度なパフォーマンスチューニングテクニック。
たぶん、単純に”マルチスレッド”て調べただけでは、「@synchronizedを使わずに済ませる方法」には辿り付けないかもしれない。
0368デフォルトの名無しさん
2012/06/17(日) 18:22:09.87そのまま複数のCPUコアを均等に無駄なく使う事に繋がるのでは。
0369デフォルトの名無しさん
2012/06/17(日) 19:08:14.950370デフォルトの名無しさん
2012/06/17(日) 19:42:30.050371デフォルトの名無しさん
2012/06/17(日) 23:55:29.52そういうレベルの話じゃない。
ただ単にマルチスレッドな話だと、スレッドセーフにするために「ロック」や「セマフォ」を使いましょう。
といった内容になるだろう。
平行処理の方は、複数のCPUコアを同時に動かすことでパフォーマンスを稼いでいるので、
「ロック」や「セマフォ」などでスレッドを一時停止させては意味がない。
つまり、「ロック」や「セマフォ」を使わずに、スレッドセーフなプログラムを組む。
といった内容になります。
スレッドもCPUコアと同じ数しか作らないので、逆に言うとシングルCPUな環境だと無意味。
シングルCPUな環境なら、NSRunLoopを活用した方がよい。
0372デフォルトの名無しさん
2012/06/18(月) 00:21:09.29理論だけが先走りっていうあたまでっかち典型のように見えるな
0373デフォルトの名無しさん
2012/06/18(月) 00:32:53.23そう思うなら、オーバーヘッドを気にせず@synchronizedを使えばいいだけの話だ。
0374デフォルトの名無しさん
2012/06/18(月) 00:38:07.19というのが気になっただけだよ
0375デフォルトの名無しさん
2012/06/18(月) 00:45:29.28問題は実際に競合して止まる度合いだろう。しょっちゅう引っかかるようなら、お前の言うよくわからん並行処理とやらで競合があまりしないようにしなければならないということだろ
元ネタの>>364は、コード書いていての気分的なもんでしかないと思うけど
0376デフォルトの名無しさん
2012/06/18(月) 00:50:15.40それかコンカレントなら並行。
0377デフォルトの名無しさん
2012/06/18(月) 02:18:06.44原発はダメだけど電気は寄越せってか!
0378デフォルトの名無しさん
2012/06/18(月) 02:21:37.18CPUで計算するだけなら並列処理にはマルチコア必要だけど、時間のかかるI/Oと
他の処理並行動作させたりするのもマルチスレッド化の大きな目的だから、
コア数どうこうは関係無いよ。排他制御の類は必ず必要だし、シングルコアだから
スレッド化不要とかロック多用して良いって事にもならない。
あと、単にカウンタ値増減したり、キューにデータ突っ込んだりとかは
atomic operationが用意されてるので(OSAtomicなんとか)これを上手く使えば
ロックの類は使わなくて済む。
0379デフォルトの名無しさん
2012/06/18(月) 05:57:56.070380デフォルトの名無しさん
2012/06/18(月) 08:57:13.190381デフォルトの名無しさん
2012/06/18(月) 09:21:13.88work unitの取得さえ同期してれば後はお好きにどうぞって奴
0382デフォルトの名無しさん
2012/06/18(月) 18:57:22.96@synchronizedやNSLockのコストとか、競合の発生率なんかよりも、
LockとUnlockで囲まれた部分のコストが問題になりそうな気がするが。
>>378
GCDを使いまくってて、各タスクの中にある@synchronizedがウザイという事で、
それを何とかしたかったら並行処理プログラミングをしろ。という話のはずだが?
0383デフォルトの名無しさん
2012/06/18(月) 19:01:56.87意味わからん。LockとUnlockで囲まれると何か余計なことされるわけ?
0384デフォルトの名無しさん
2012/06/18(月) 19:13:47.03囲まれた部分はコストも何も本来必要不可欠なものだろう。その部分を安全にということでLockとUnlockするのであって、それが安全にというためだけ(つまり競合しなければ不必要)で、Lock/Unlockしなければならない部分がコストなんだけどな
NSLock(てかセマフォか)使えば、その間のコードに余計な何をされるかなんて思いもよらないし、@synchronized はNSLockをより便利にってようなもんだろ(違うけど)
どうも意味がわからん。だから並行処理とかなんとか言いたいのか??
0385デフォルトの名無しさん
2012/06/18(月) 19:15:47.18◯Lock/Unlock(Lock/UnlockにかかるCPU消費量)がコスト
0386デフォルトの名無しさん
2012/06/18(月) 19:52:39.210387天才かえるん ◆69rLNSEETE
2012/06/18(月) 19:53:55.060388デフォルトの名無しさん
2012/06/18(月) 19:56:09.66「コスト」という言葉が悪かったか。「処理時間」と言い直そう。
長い間Lockされ続けると問題になると言う意味。
0389デフォルトの名無しさん
2012/06/18(月) 20:10:03.80だーかーらー、それも競合しなければ何も問題にすることじゃないってのに
競合が問題であって、競合がひどかったら自然とそうならないようにするだろ。わざわざ並行処理なんて持ち出さなくたって
長い間Lockされ続けるという例を出すも不適切だろ。お前はそんな下手糞なのか?
ついでに、>>378は>>371で余計なところを指摘しているだけだろ
なんか言い出して後に引けないというのは近いところで見たことがあるなwまあ、アレはひどすぎたがw
0390デフォルトの名無しさん
2012/06/18(月) 20:18:23.94いや、違う。競合って言ってみたいんだよw
0391デフォルトの名無しさん
2012/06/18(月) 20:37:20.55http://toro.2ch.net/test/read.cgi/tech/1339691517/
0392デフォルトの名無しさん
2012/06/18(月) 20:45:04.750393デフォルトの名無しさん
2012/06/18(月) 20:46:50.14だから〜、「競合する」という前提条件があるからロックするんだろ?
> 競合が問題であって、競合がひどかったら自然とそうならないようにするだろ。わざわざ並行処理なんて持ち出さなくたって
もちろん、競合すること事態が問題だ。そして、その競合を回避する手段として並行処理があるという話だ。
「@synchronizedを使わずに済ませる」というのは、けっきょくのところ競合しなくなるからだぞ。
0394デフォルトの名無しさん
2012/06/18(月) 20:50:18.390395デフォルトの名無しさん
2012/06/18(月) 20:56:17.98競合するかもしれないだよ。各スレッドは勝手に動いているものだからな。タイミング取る方がむずかしいぐらいだ
保険としての意味合いの方が大きいだろう
そんなのは普通なことだろってことなんだがな。並行処理とやらのなんだか高尚そうなことを言い出さなくても
元々はそんなレベルの話ですら無いだろう。お前が並行処理とかやらの理論に拘るのはいいが、持論を強化するために余計なトンチンカンに見えること言うから(>>371)、その持論も怪しいものに見えるってことだよ
長い間Lockされ続けるは無しでいいんだな?w
0396天才かえるん ◆69rLNSEETE
2012/06/18(月) 21:10:00.40お前らは小物なんだよ
0397デフォルトの名無しさん
2012/06/18(月) 21:13:50.79大物らしくしてください。それだと狐にしか見えませんぜ
0398デフォルトの名無しさん
2012/06/18(月) 21:22:40.000399デフォルトの名無しさん
2012/06/18(月) 21:26:04.77プログラムエラーの回避を容易にするためのもんなんじゃないの?
0400デフォルトの名無しさん
2012/06/18(月) 21:31:14.110401デフォルトの名無しさん
2012/06/18(月) 22:07:34.640402デフォルトの名無しさん
2012/06/18(月) 22:18:39.80void objc_setAssociatedIntegerValue(id object, const void *key, NSInteger value) {
NSNumber *number = [[NSNumber alloc] initWithInteger:value];
objc_setAssociatedObject(object, key, number, OBJC_ASSOCIATION_RETAIN);
}
NSInteger objc_getAssociatedIntegerValue(id object, const void *key) {
NSNumber *number = objc_getAssociatedObject(object, key);
NSInteger value = [number integerValue];
return value;
}
0403デフォルトの名無しさん
2012/06/18(月) 23:36:44.790404デフォルトの名無しさん
2012/06/19(火) 08:24:08.96しかし連想参照オブジェクトが空だった場合の処理を忘れてました。
NSInteger objc_getAssociatedIntegerValue(id object, const void *key) {
NSNumber *number = objc_getAssociatedObject(object, key);
NSInteger value;
if (number != nil) {
value = [number integerValue];
} else {
value = 0; //NSNotFound?
}
return value;
}
この場合NSNotFoundの方がいいんですかね?
0405天才かえるん ◆69rLNSEETE
2012/06/19(火) 10:04:18.34C,Carbon、QuickDrawでオンラインゲーム「Oberin」を完成させた
Glenn Seemann、David M. Bourg は最強だけどな
http://oberin.com
http://www.amazon.co.jp/%E3%82%B2%E3%83%BC%E3%83%A0%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEAI%E5%85%A5%E9%96%80-David-M-Bourg/dp/4873112168
10年前以上にUO風のゲームを二人で完成させた
PPC版も
お前らってほんとクズだよな
10年以上前の人にも勝てないし
どうせ図形やグラフ表示させて喜んでる程度だろ
ゲームは創作物としてレベル高いからな
0406デフォルトの名無しさん
2012/06/19(火) 11:17:59.060407デフォルトの名無しさん
2012/06/19(火) 22:10:00.39Unityスレに帰れよw
0408デフォルトの名無しさん
2012/06/19(火) 22:50:43.95> この場合NSNotFoundの方がいいんですかね?
それは、このコードの仕様を考えた自分自身にしか分からない。
0409デフォルトの名無しさん
2012/06/20(水) 13:07:56.10俺昔一人でEQ LikeなMMO書いた人知ってるけど、お前みたいにドヤってもいいかな?
0410デフォルトの名無しさん
2012/06/20(水) 15:00:05.10ARCについてですが、変数に代入せずに、あるメッセージ送信のなかに入れ子で
・・・withInstanceA:[[ClassA alloc] init] ・・・
とかやると所有権つきで作った後メッセージに引数として渡した後リリースするすべが無いのでリークしますよね?
また、一時的なインスタンスを取り出して一時的なインスタンスを返すメソッドで、一時的なインスタンスをreturnに直接渡すのもダメで、一度変数に代入してリテインしてやらないとマズイですよね?
例えば
- (NSString *)URLPathComponent1 {
return [[[self url] pathComponents] objectAtIndex:1];
}
これはマズくて
- (NSString *)URLPathComponent1 {
NSString *pathComponent;
@autoreleasepool {
pathComponent = [[[self url] pathComponents] objectAtIndex:1];
}
return pathComponent;
}
ってしないとダメですよね?
0411デフォルトの名無しさん
2012/06/20(水) 15:21:00.86自動で参照カウンタを操作する
自動で参照カウンタを
自動で
自動
0412デフォルトの名無しさん
2012/06/20(水) 15:52:38.49いちいち変数に入れる必要はない。あと、ほとんどの場合、自分で @autoreleasepool {} を書く必要もない。
0413天才かえるん ◆69rLNSEETE
2012/06/20(水) 17:58:30.33外人?
どうせドルアーガの塔レベルだろ
コミュニティはどれくらい続いてる?
10年以上続いてるかな?
サーバー代とか無料プレーかな?
0414天才かえるん ◆69rLNSEETE
2012/06/20(水) 18:05:31.91好評価
今もなお各国のファンがフォーラムに書き込んでるしね
開発者はGlenn+Davio
http://ja.wikipedia.org/wiki/Oberin
>>開発者のGlennは個人的な興味で開発・運営を行っているらしく、今後も無料で運営を継続する見込みである。
現在、OberinのサーバはGlennの自宅サーバで稼働しているものと考えられており
多人数がログインすることで動作速度が極度に低下するなど、回線のトラブルが絶えない。2005年8月には巨大ハリケーン・カトリーナの影響でGlennの自宅が被害を受け、サーバが停止するという事態も起きた。
Xcode,CodeWarrior,C言語,Carbon+QuickDrawで作られてるしね・・・
どうせお前のゲームはWindowsとかの方だろw
Macの開発者ないんだろうな
まあクズで視野が狭いし 世界観も狭そうだから
知らないんだろうなグズが
0415デフォルトの名無しさん
2012/06/20(水) 18:24:06.73もしくはObjective-Cの話をしてみてよ
0416デフォルトの名無しさん
2012/06/20(水) 19:04:40.63ARCだと
- (NSString *)URLPathComponent1 {
return [[[self url] pathComponents] objectAtIndex:1];
}
これをコンパイルすると自動的に
- (NSString *)URLPathComponent1 {
return [[[[[self url] pathComponents] objectAtIndex:1] retain] autorelease];
}
になる
・・・withInstanceA:[[ClassA alloc] init] ・・・は 書かれた場所などを判断して、
retain, autoreleaseを適切に自動的に付け足す
0417デフォルトの名無しさん
2012/06/20(水) 19:59:33.25ViewControllerAである変数をNSUserDefalutsに保存してViewControllerBから読み込むみたいな
できたら便利なんだけど
0418デフォルトの名無しさん
2012/06/20(水) 20:00:46.330419デフォルトの名無しさん
2012/06/20(水) 20:10:06.56Prapareなんとかって無駄に長いし
0420デフォルトの名無しさん
2012/06/20(水) 20:22:14.68値渡しとか一時的なもんに使うのは気持ち悪いんだけど。グローバルじゃなくてNSUserDefaluts 使うのはグローバルが気持ち悪からでしょ?
NSUserDefaluts って文字が示しているように一時的なもんじゃなくて、Defaults (ユーザ設定)に使うもんだけど。本来
0421デフォルトの名無しさん
2012/06/20(水) 20:23:32.750422デフォルトの名無しさん
2012/06/20(水) 20:24:37.34そんなことするなっw
0423デフォルトの名無しさん
2012/06/20(水) 20:33:24.88できなかったんだけど
0424デフォルトの名無しさん
2012/06/20(水) 20:35:11.97グローバルはグローバルだよ。クラスなんて関係ないよ。どの言語でも
0425デフォルトの名無しさん
2012/06/20(水) 20:36:59.39てか、使おうとするなよっw
まあ、お前さんがどう変なコード書こうがお前さんの自由だが
0426デフォルトの名無しさん
2012/06/20(水) 21:49:28.15ありがとうございます。
ということは, 自動で変数を用意して代入してから引数として与えてしかる後に解放してくれるんでしょうか
単にretainやreleaseやautoreleaseを適切な場所に挟んでくれるだけだと思ってたので、
MRCだと挟めない書き方をするとダメだと思ってたんですが一時的に変数に移すのまで自動でやってくれるんですね・・・
- (NSString *)URLPathComponent1 {
return [[[[[self url] pathComponents] objectAtIndex:1] retain] autorelease];
}
↑これだと、この後メソッドから抜けるときに更にもう一度autoreleaseが掛かるはずなので、オーナーシップの数を超えてautoreleaseされると思うのですが大丈夫なんでしょうか?
0427デフォルトの名無しさん
2012/06/20(水) 22:36:54.740428デフォルトの名無しさん
2012/06/20(水) 23:52:41.62イミフ。ARCとMRCがごっちゃになってない?
ARC厳禁でMRCから始めてみたら?
0429デフォルトの名無しさん
2012/06/21(木) 00:09:52.99alloc, copy, mutableCopy, newメソッドファミリに属するメソッドは保持可能なインスタンスへのポインタを返し、これら以外は一時的なインスタンスへのポインタを返すだったと思いますが、
一時的なインスタンスへのポインタを返すということは, そのメソッド定義の最後で, autoreleaseされてreturnされるということだと思いますが、
ARCではretain, release, autoreleaseは書けませんから、そのメソッド定義内でオーナーシップを持っていたオブジェクトを、最後にautoreleaseする処理が自動的に入るはずです。
なので、一時的なインスタンスを返すメソッド定義では、最後にautoreleaseが補完されることを念頭に置いて、オーナーシップを持っておかなければならない、
つまり一時的なインスタンスを別の上記メソッドファミリ以外のメソッドで取得し、オーナーシップを取らずにそのままreturnするとまずいと思うのですが間違ってますでしょうか?
0430デフォルトの名無しさん
2012/06/21(木) 00:29:20.65sharedXXXとか使ったことないのか?
てか421の言うように直接渡せばいいだろ
渡される側に公開メソッドとかプロパティ用意すればいいだけだろ
>>429
「参照カウント」だぞ?カウンタを増減するだけなのに難しく考え過ぎ
メモリの解放はカウントがゼロになった時点でランタイム側が行う
それにしてもdelegateベースの多態に慣れないなあ
なんかjavaっぽくなってしまう...
実現できるからいいっちゃあ良いんだろうけど人に見せられない
0431デフォルトの名無しさん
2012/06/21(木) 00:40:23.990432デフォルトの名無しさん
2012/06/21(木) 01:15:48.28> 一時的なインスタンスを別の上記メソッドファミリ以外のメソッドで取得し、オーナーシップを取らずにそのままreturnするとまずい
自動的にretainして、自動的にautoreleaseされるから、問題なし。
- (id)hoge {
id boke = [NSString stringWithFormat:@"%i", 123];
[boke retain]; // ARC自動挿入
[boke autorelease]; // ARC自動挿入
return boke;
}
0433デフォルトの名無しさん
2012/06/21(木) 01:33:41.80やっぱりMRCが始めるのがいい。Reference Counter がわかってないので(>>430の言う通りだんだけど)
ARCは高度に勝手にコード中にrelease/autoreleaseが入る。それは値を返すメソッドとは限らず、受け取り側のコード中にも埋められる
ほとんど Reference Counter を意識させないのがARCの目的でもあるんだが、あなたのように気になりまた、間違って理解しているなら、MRCからだね。やっぱり
0434デフォルトの名無しさん
2012/06/21(木) 06:21:37.39http://engawa.2ch.net/test/read.cgi/poverty/1340202801/
野田首相
在日韓国人に お礼の 挨拶
画像
http://blog-imgs-42.fc2.com/o/m/o/omoixtukiritekitou/201109030608283c7.jpg
野田首相
朝鮮飲み で 水を飲む
↓
画像
http://image.goooze.net/blog/thumb/1320119918/1-1.jpg
0435デフォルトの名無しさん
2012/06/21(木) 09:40:05.73id foo = [anObj URLPathComponent1];
↑ここ(呼び出し側)で適切にオーナーシップが設定される。
この場合なら恐らく retain,autorelease だけど、プログラマが考える必要は特にない。
0436天才かえるん ◆69rLNSEETE
2012/06/21(木) 10:01:34.17虚勢はって逃げたな
0437デフォルトの名無しさん
2012/06/21(木) 14:50:56.03まぁ、言いたいことはわかる
0438デフォルトの名無しさん
2012/06/21(木) 17:33:09.840439デフォルトの名無しさん
2012/06/21(木) 18:44:31.95@property (readonly) *string hoge;
と宣言して、実装で
@synthesize hoge = hoge_;
と定義して、中のコードで
NSString *fuga = ".....";
NSString *piyo = ".....";
NSString *hogera= ".....";
:
hoge_ = [fuga copy];
:
hoge_ = [piyo copy];
:
hoge_ = [hogera copy];
みたいなことをやっても大丈夫でしょうか? (つまりhoge_のメモリリークとか起きないでしょうか?)
0440デフォルトの名無しさん
2012/06/21(木) 18:45:39.79@property (readonly) *NSString hoge;
です。
0441デフォルトの名無しさん
2012/06/21(木) 19:48:53.13__bridge 使って無理矢理キャストとかしてない限り何しても大丈夫
0442デフォルトの名無しさん
2012/06/21(木) 20:13:15.09おぉ大丈夫なんですね。ありがとうございます。ARCすげー
もうひとつ疑問なんですが、
普通、viewDidUnload() で、
self.nameTextField = nil;
みたいに、不要なもの(viewDidLoadで作成したものとか)にnilを代入すると思うんですが
ARC環境下では、これも不要になるんですかね。
それとも、ARC環境下でもこういう処理は入れといた方がいいんでしょうか?
dealloc でのreleaseは不要ですよね。(というかreleaseするとコンパイルできない)
0443デフォルトの名無しさん
2012/06/21(木) 20:34:50.62いや、それは推奨
releaseの代わりにということで(推奨=strongの場合のみだったかな)
0444デフォルトの名無しさん
2012/06/21(木) 20:55:51.69あぁ、この処理は今まで同様必要なんですね。
ありがとうございました。 m(_ _)m
0445デフォルトの名無しさん
2012/06/21(木) 21:06:14.83weak なら viewDidUnload: で self.nameTextField = nil; は不要なはず。
(weak ならオブジェクトが破棄されたら自動的に nil になる。)
0446デフォルトの名無しさん
2012/06/21(木) 21:17:42.19Appleのサンプルとかみたら、IBOutletではweakが使われてますね。
weakだと自動的にnil入れてくれるんですね、なるほど。
0447デフォルトの名無しさん
2012/06/23(土) 21:18:21.180448デフォルトの名無しさん
2012/06/23(土) 21:22:46.450449デフォルトの名無しさん
2012/06/23(土) 21:23:51.130450デフォルトの名無しさん
2012/06/26(火) 23:32:37.37URLをキーにしたい場合、absoluteStringをキーにする感じでしょうか?
0451デフォルトの名無しさん
2012/06/26(火) 23:38:12.140452デフォルトの名無しさん
2012/06/26(火) 23:51:52.510453デフォルトの名無しさん
2012/06/26(火) 23:58:40.820454デフォルトの名無しさん
2012/06/27(水) 01:52:40.25ありがとうございます。出来ました。
0455デフォルトの名無しさん
2012/06/28(木) 17:47:10.86というプロパティを持つオブジェクトを複製しようとして
objB.name = objA.name
ってやってしまい、stringWithStringってやっとかないと
どっちか書き換えると両方書き換わっちゃうかと思いきや
別々に動いてるんだけどなんか勘違いしてるかな?
0456デフォルトの名無しさん
2012/06/28(木) 18:03:13.390457デフォルトの名無しさん
2012/06/28(木) 19:11:49.260458デフォルトの名無しさん
2012/06/28(木) 19:56:22.24>objB.name = objA.name
これだとポインタが同値になるだけだよ。どちらも同じオブジェクト。
- copyWithZone しなきゃ。
0459デフォルトの名無しさん
2012/06/28(木) 19:58:03.060460デフォルトの名無しさん
2012/06/28(木) 21:06:44.770461デフォルトの名無しさん
2012/06/28(木) 21:18:32.060462デフォルトの名無しさん
2012/06/28(木) 21:22:25.070463デフォルトの名無しさん
2012/06/28(木) 21:31:28.700464デフォルトの名無しさん
2012/06/28(木) 21:52:00.300465デフォルトの名無しさん
2012/06/29(金) 01:43:37.240466デフォルトの名無しさん
2012/06/29(金) 15:33:01.49[delegate someMethod];
ってやらないで
performSelectorを使ってるサンプルが多いのはなぜだろう
respondsToSelectorと並べたいだけかな。
自作フレームワークの場合はそもそもrespondsToSelectorも要らないよね
0467デフォルトの名無しさん
2012/06/29(金) 15:59:01.360468デフォルトの名無しさん
2012/06/29(金) 16:06:19.710469デフォルトの名無しさん
2012/06/29(金) 17:15:05.05メソッドがはっきりしているんだったら、performSelector 使う意味はないよねえ
俺もそういう場合は普通にメソッド呼び出ししている
respondsToSelectorとperformSelectorで使うからと、SEL selector = @selector(...) するとARCでは怒られるのがこのごろ嫌
>respondsToSelectorも要らない
optional を使わないならいらないでしょ
0470デフォルトの名無しさん
2012/06/29(金) 18:32:54.26その違いを理解していないと、なかなか使い分けられないだろうね。
0471デフォルトの名無しさん
2012/06/29(金) 18:35:14.36delay無しは直接実行(?)とおんなじだよ
0472デフォルトの名無しさん
2012/06/29(金) 18:43:26.97delay 付きは0にしても、どっかのキューに登録するだけで直ぐに返ってきて、セレクタが実行されるのは次の実行ループだと言いたいのはわかるが、どう理解して使い分けているんだろ??
0473デフォルトの名無しさん
2012/06/29(金) 18:46:28.480474デフォルトの名無しさん
2012/06/29(金) 19:04:59.65例えばなんかの処理中に UIActivityIndicatorView を回転させたい時に
startAnimating の直後にその処理を直接実行しても インディケータは回転しないから、
いったんcurrentRunLoopに戻すためにperformSelectorのdelayバージョンで使うとか。
あるアニメーションの中で、別のアニメーションを起動したいけど、タイミングをずらしたい時とか。
あるアニメーションの中で別のアニメーションを実行するとアラート吐くことあるからな。
ここでいうアニメーションとはImagePickerの起動とかviewの遷移アニメーションも含む。
0475デフォルトの名無しさん
2012/06/29(金) 19:12:05.93delay付きだけの話ね。それは0でも遅延だから>>467も言っていることだろうし、俺も遅延としては便利に使う
でもそもそもdelay付き(に限って)の話ではないので>>470でいきなり理解してないとというが理解できなかった
delegateでも遅延の方がいいかなあという時もあることはあるけど、さほどないし
0476デフォルトの名無しさん
2012/06/29(金) 23:01:06.810477デフォルトの名無しさん
2012/06/29(金) 23:16:28.480478デフォルトの名無しさん
2012/06/29(金) 23:17:31.130479デフォルトの名無しさん
2012/06/29(金) 23:42:59.24jsのtimeoutはdelayの意味だよ。名前が悪い
デリゲート繋がりで、
.h
@property (nonatomic,weak) id<protocol> delegate
.m
@synthesize delegate;
って宣言したとき
[delegate someMethod];
ってやるとプロパティ経由になるよね?
@synthesize delegate = _delegate;
[_delegate someMethod];
ってやるほうが流儀なのかなあ。どうでもいいか
0480デフォルトの名無しさん
2012/06/30(土) 00:10:46.41ってやらないとプロパティ経由にならないんじゃねーか?
0481デフォルトの名無しさん
2012/06/30(土) 01:09:08.91あ、そうだった。長々とすまん。
この場合delegateはdelegateって名前のプロパティに対応した
プロパティと同名の自動生成されたクラス変数なんだよね
ややこしい
0482デフォルトの名無しさん
2012/06/30(土) 01:14:56.170483デフォルトの名無しさん
2012/06/30(土) 01:16:40.65元々はインスタンス変数を別に宣言しなければならず(だったはず)、それに対するsetterとgetterがプロパティ
インスタンス変数の宣言が省略可能になったので、
@synthesize delegate
は、delegate というインスタンス変数が
@synthesize delegate = _delegate;
は、_delegate というインスタンス変数が
というだけなので、>>480の言うとおり
0484デフォルトの名無しさん
2012/06/30(土) 22:09:57.09あるentityAから, 1:n対応でentityBと双方向のrelationshipがあるとき,
かつ, entityAに関連づけられたclassAのインスタンスaが既知のとき,
aとrelationshipを持つ, entityBに関連づけられたclassBのインスタンスb1, b2, ... bn全てをfetchするには,
NSPredicateじゃダメで, classBのインスタンスをどかっと全部fetchしてからプログラム上でaとrelationshipがあるものを抽出する...という形になるのでしょうか.
0485デフォルトの名無しさん
2012/06/30(土) 22:20:33.240486デフォルトの名無しさん
2012/06/30(土) 23:03:12.64ありがとうございます。
[@"self in %@", a.bs]
で調べられるんですね・・・、
%@ですから文字列比較しかできないものかと
0487デフォルトの名無しさん
2012/06/30(土) 23:05:22.85http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265
%@は文字列だけって書いてあるか?
0488デフォルトの名無しさん
2012/06/30(土) 23:22:31.45エッ――!
%@ってNSString以外にも使えたんですか・・・
確かに配列とかURLとかに使われていることがあったのですが
てっきり自動でdescriptionを呼び出しているだけかと・・・
0489デフォルトの名無しさん
2012/06/30(土) 23:30:01.16だからNSObjectに適応したオブジェクトは全て%@で出力対象となる。
0490デフォルトの名無しさん
2012/06/30(土) 23:41:13.75えぇ、それはわかるのですが
ですから@"self ub %@", a.bs
なんてのはa.bs.description(←この時点でNSStringになってしまう)のなかにselfがありますか、
ということだと思って
a.bs(←NSArray)の中からself(evaluatedObject)を探してくるなんて芸当をやるとは思いませんでした
0491デフォルトの名無しさん
2012/06/30(土) 23:48:22.73これって何してるの?
0492デフォルトの名無しさん
2012/07/01(日) 00:06:31.65predicate formatはstring formatの書式を流用してるけどやってる事は別
見るべきは
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html
これ
0493デフォルトの名無しさん
2012/07/01(日) 00:09:54.40相互参照で、entityBからentityAはn:1対応なのでもっと簡単に調べる書き方がありました。
@"a == %@", a
こっちの方が配列から探さず調べられるので多分速い?かも知れません
0494デフォルトの名無しさん
2012/07/01(日) 00:20:04.31CoreDataな話なんだよね?
インスタンスaに、インスタンスbへのrelationshipを表すNSSet型のプロパティbsがあるはずだよね?
0495デフォルトの名無しさん
2012/07/01(日) 13:07:35.34それについても、
インスタンスbに、インスタンスaへのrelationshipを表すClassA型のプロパティaがあるはずだよね?
NSPredicateを使って検索する必要ないんじゃ?
0496デフォルトの名無しさん
2012/07/01(日) 13:40:26.35暮らしに密着する「乾電池」から日々の生活をちょっと楽しくしてくれる「カラオケ」まで
日本で誕生した発明品はありとあらゆる場面で使われています。
ネットユーザーは、「日本が発明した生活の中の発明品」を紹介し、日本の発明力はすごいと書き込みました。
日本が発明した生活の中の発明品
・プラスチック消しゴム:1964年に株式会社シードが発明。
・「折る刃」式カッターナイフ:1959年に岡田良男が発明。
・カラオケ:1971年に井上大佑が発明。
・VHS:1976年にビクターが開発。
・自動改札機:1967年に立石電機(現・オムロン)が開発。
・腕時計:1969年にセイコーが開発。
・インスタントラーメン:1958年に日清食品が開発。
・インスタントコーヒー:・電気炊飯器:1955年に三並義忠が発明。
・ウォークマン:1979年にソニーが開発。
・CD:ソニーが開発。
・乾電池:1887年に屋井先蔵が発明。
・使い捨てカメラ:1986年に富士フィルムが発売。
・エアバッグ:1963年に小堀保三郎が発明。
<コメント>
・本当にすごい。
・腕時計は本当に日本?
・素晴らしい製品をたくさん作っていますね。ありがとう。よく使ってます。
・うん、確かに日本が発明したもののようだ。
・日本は100年前から先進国だし。
・CDはソニーとフィリップスが共同で開発したものです。
・インスタントラーメン発明記念館に行ったことある。
・日本の青年がハイブリッドカーのタイヤに付ける音発生装置を作ったそうだ。日本ってこういった人が時々登場すると思う。
http://koko-hen.jp/archives/3327497.html
0497デフォルトの名無しさん
2012/07/01(日) 13:58:45.470498デフォルトの名無しさん
2012/07/01(日) 14:10:03.540499デフォルトの名無しさん
2012/07/01(日) 14:23:51.38>>497
お前らの認識がその程度なんだから、そうなったんじゃないの
スレチに反応するのも含めて、お前らはいろいろ頑張れ
0500デフォルトの名無しさん
2012/07/01(日) 14:36:17.180501デフォルトの名無しさん
2012/07/01(日) 14:39:21.660502デフォルトの名無しさん
2012/07/01(日) 14:41:26.320503デフォルトの名無しさん
2012/07/01(日) 14:59:54.62Rubyの14歳子みったーを思い出した
0504デフォルトの名無しさん
2012/07/01(日) 15:43:52.32ありがとうございます。もちろん最初に書いたとおり、
全部オブジェクトとしてとってきてから、b.a(bからaへの対1参照)なり、a.bs(aからbへの対多参照)なりのプロパティで比較すれば出来るのですが、
コードをシンプルにするのとパフォーマンスを改善するためにNSPredicateで条件指定出来ればいいなと思いまして・・・
0505デフォルトの名無しさん
2012/07/01(日) 23:29:14.28> 全部オブジェクトとしてとってきてから、b.a(bからaへの対1参照)なり、a.bs(aからbへの対多参照)なりのプロパティで比較すれば出来るのですが、
ん??
要するに、EntityAに1:NでrelationshipしているEntityBを全て取得したい、ということなんだよね?
ClassA* a = fetchObject();
NSSet* bs = [a valueForKey:@"relationshipB"];
これで変数bsの中に、EntityAに1:NでrelationshipしているEntityBが全て入っていると思うのですが。
0506デフォルトの名無しさん
2012/07/02(月) 00:34:46.35あ。その手は思いつかなかったです・・・。
中身はRDBMSだという固定観念に縛られておりました。
つい、いちいちフェッチしないといけないものかと
チュートリアルにも必ずしもフェッチしなくてもよい場合があると書いてありました
条件を加えて検索しなおすとかでなければ、オブジェクトのまま関係を辿れるんですね
ここで、もう一つ疑問が出てきたのですがあるオブジェクトと1:nで大量のオブジェクトが結ばれているとき、
このオブジェクトをとってきても、すぐに大量のオブジェクトがフェッチされる訳ではないようですが
だからといってツリー状にどんどん繋げてしまうと、何かの拍子で一気に大量のオブジェクトがメモリにロードされて落ちるんじゃないかという懸念があるのですが
あまり気にしなくても上手く管理してくれるんでしょうか
それとも、大量のオブジェクトへの参照があるところでリレーションを切って、キーを設定して、キーを元に明示的にフェッチするようにすべきなんでしょうか
0507デフォルトの名無しさん
2012/07/02(月) 19:11:40.27ごく普通にオブジェクトを操作するだけで、背景で自動的にRDBMSが動いてくれるのがORMだと思います。
レコードをフェッチするという概念がオブジェクト側にないので、大量のオブジェクトのロードは基本的に制御しきれないと思います。
また、「大量のオブジェクトへの参照があるところでリレーションを切って」などとやると、ORMのメリットを失うような気がします。
実際に試して見て、「オブジェクトの大量ロード」がパフォーマンスに影響を与えないなら、気にしないのが一番ですし、
パフォーマンスに影響するなら、SQLiteのAPIを直接操作した方が良いと思います。
0508デフォルトの名無しさん
2012/07/03(火) 00:13:24.720509デフォルトの名無しさん
2012/07/03(火) 00:28:24.39覚えても使い道もないわAppleのとはソース互換もないわではっきし言うと無駄だと思うぞ
0510デフォルトの名無しさん
2012/07/03(火) 00:37:38.66から、いいんじゃないの。MacでGNUstepやるのはなんの意味もないと思うけど
0511デフォルトの名無しさん
2012/07/03(火) 01:06:10.88ありがとうございます。
とりあえず全部relationで繋げてみて、パフォーマンスがイマイチだったら対策を考えようと思います
すみません、もう一点聞きたいのですが
entityAと, entityBと, entityCがあり, entityCから, entityAとentityBに対多関係があります.
このとき, entityCの属性、targetによって, targetCの対象を切り替えるとき,target
C_TARGETS_A_SELECTED:ユーザーが選んだentityAのオブジェクト全て
C_TARGETS_A_ALL:entityAのオブジェクト全て
C_TARGETS_B_SELECTED:ユーザーが選んだentityBのオブジェクト全て
C_TARGETS_B_ALL:entityBのオブジェクト全て
としたいのですが、スマートなやり方が思いつきません
まずAをターゲットとするものとBをターゲットとするものでentity自体を分けたほうがいいのでしょうか
また、一番の問題がSELECTEDとALLなんですが、AやBのオブジェクトを新規作成したときとき、自動で(ALLに設定されている)Cに関連づけるのは無理ですよね?
となると、AやBからCを辿るのはやめて、対象がALLのものと、SELECTEDになっているもののうち対象のAやBを参照しているCを探す・・・という感じになるのでしょうか
AやBの増加に伴って、ALLになっているC全てにrelationが反映される保証が出来れば、AやBから自身を対象としているCを探すことが出来て便利なのですが。
プログラミング的には、AやBを増やしたときにちゃんとALLのCにつなげればいいのですが、
ビューコントローラから直接managedObjectContextにアクセスするやり方だとミスが起きやすい気がします
managedObjectContextをビューコントローラから隠蔽して、AやBの追加、そしてそのときCとのrelationを上手く調整するコントローラを作るべきなんでしょうか
0512デフォルトの名無しさん
2012/07/03(火) 02:56:55.09大抵の機能は使えるはずだが。
0513デフォルトの名無しさん
2012/07/03(火) 18:46:30.40うーん。。。なにやら変な方向に話が進んでいるような気が(^^;
CoreDataはデータストレージなので、基本的にデータを出し入れすることしかできません。
CoreDataそのものでロジックを組む事はできないよ。
で、その問題をどう解決すればいいのかは、もっと詳細が分からないとなんとも言えない、
けど、たぶん、根本的なところから設計を見直すはめになるんじゃないかと。
0514デフォルトの名無しさん
2012/07/06(金) 19:59:58.730515デフォルトの名無しさん
2012/07/06(金) 20:13:22.070516デフォルトの名無しさん
2012/07/06(金) 20:13:43.88リレーショナルなオブジェクトを永続化してリレーショナルに利用できる何か
バックエンドはあんまり関係ない
0517デフォルトの名無しさん
2012/07/06(金) 21:34:02.42ありがとうございます。うーんなかなか難しいですね
やっぱりCore Dataじゃないほうが取り回し良さそうなのでCore Dataやめようかと思うんですが
一気に全データ同期がかからないよう細分化してしたら10個ぐらい
UIDocumentのサブクラスが出来てしまったんですが、こんなに増やすとリジェクトされるでしょうか
原則的には1アプリ1ドキュメントですよね・……
0518デフォルトの名無しさん
2012/07/06(金) 21:49:17.46つか、RDBの様には使えない
RDBを使いたいなら素直にRDBを使った方がいい
0519デフォルトの名無しさん
2012/07/06(金) 22:15:23.65特に、NSInMemoryStoreTypeなんかは、SQLite固有の機能なんじゃないか?
0520デフォルトの名無しさん
2012/07/06(金) 22:20:39.57> 一気に全データ同期がかからないよう細分化してしたら10個ぐらい
> UIDocumentのサブクラスが出来てしまったんですが
待て、それはそれで何かがおかしいぞ(^^;
0521デフォルトの名無しさん
2012/07/06(金) 22:46:38.74ありがとうございます。うーんやっぱりおかしいですかね。
機能毎にリストやら下書きやらが必要になるんですが、
各々の機能ごとに同期すれば
タイムスタンプが変わっているリスト・下書きだけ同期すればいいので早いかな、と思ったんですが
それで細分化したらUIDocumentのサブクラスが10個に・・・
0522デフォルトの名無しさん
2012/07/06(金) 23:01:41.94「CoreDataを使えばコードを書かずに済ませることができる」
とか思っている初心者がいるようなのだが、
これって、ヒガレス本の影響なのだろうか?
話を聞くと、みんなヒガレス本を読んでいるっぽいのだが。
0523デフォルトの名無しさん
2012/07/06(金) 23:24:08.06いや、読んでないです。コードを削減することが目的ではなく、
結構複雑なオブジェクトグラフを、出来る限り待ち時間を少なくして同期したいのですが
Core Dataは差分書き出しが出来るようなのでいいかなと思ったのですが、オブジェクトに任意の順番をつけるときにエンティティにindexをもたせたりとかややこしいなと思って
各機能間はIDを使って結合できるので、できるだけ切り離して一つの機能ごとにファイルにして同期した方がいいかなと思ったのですが
で、モデルコントローラで各ドキュメントを全自動で同期・読み込み・書き込み制御して、適切なオブジェクトグラフを提供するようにしたいのです
それともこのモデルコントローラをUIDocumentのサブクラスにして、各ファイルをフォルダに突っ込んでNSFileWrapperで提供すべきなんでしょうか
0524デフォルトの名無しさん
2012/07/06(金) 23:30:28.670525デフォルトの名無しさん
2012/07/06(金) 23:55:40.40https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdFAQ.html#//apple_ref/doc/uid/TP40001802-244739
0526デフォルトの名無しさん
2012/07/07(土) 00:40:02.59> 結構複雑なオブジェクトグラフを、出来る限り待ち時間を少なくして同期したいのですが
CoreDataを利用する目的は、パフォーマンス(処理速度)ということですか?
> オブジェクトに任意の順番をつけるときにエンティティにindexをもたせたりとかややこしいなと思って
「任意の順番を付ける」ということならIndexのようなものを持たせるしか方法がないのでは?
どのみち、並べ替えのKeyとなるものが必要になりますよ?
> このモデルコントローラをUIDocumentのサブクラスにして、各ファイルをフォルダに突っ込んでNSFileWrapperで提供すべきなんでしょうか
CoreDataには、「一つのオブジェクトをルートにしてツリー構造を作らなければならない」
などという制約はないので、その辺はどうにでもなると思います。
> 各機能間はIDを使って結合できるので、できるだけ切り離して一つの機能ごとにファイルにして同期した方がいいかなと思ったのですが
・各機能のデータを結合する
・機能ごとにデータを切り離す
という2つの話が混ざっているように見えますが、いったい何がしたいの?
あと「同期」という言葉が出て来ますが、これって具体的には何と何を同期するの?
0527デフォルトの名無しさん
2012/07/07(土) 01:55:43.23ありがとうございます。
>CoreDataを利用する目的は、パフォーマンス(処理速度)ということですか?
パフォーマンス、というと語弊があるかも知れません。
巨大なオブジェクト群を、いかに無駄なく(同期時に全てをアップロード/ダウンロードすることなく、必要な物だけ)アップロード出来るかということです。
オブジェクト群全てにNSCodingをつけ、ルートオブジェクトからアーカイブすれば同期はできますが、
アップロードする必要のない(既に同じものがアップロードされている)オブジェクトグラフの一部分も含めて全てアップロードすることになってしまい、無駄に通信量が増える上に、同期の待ち時間がかかりユーザーの操作にも影響します。
>「任意の順番を付ける」ということならIndexのようなものを持たせるしか方法がないのでは?
いや、NSCodingでルートから格納していくなら、NSArrayがインデックスを持つため、格納するオブジェクト自体にはインデックスをつける必要がありません。
Core Dataの場合、Entityにindexのアトリビュートが必要になります。さらに、そのindexが他のentityに依存する場合、そのentityに関連付けてindexを持たせるために、参照元に対する参照先のindexを保持するためのentityを作らなければなりません。
>CoreDataには、「一つのオブジェクトをルートにしてツリー構造を作らなければならない」などという制約はないので、その辺はどうにでもなると思います。
いや、NSFileWrapper云々の話は、Core Dataではなく自作クラスでオブジェクトのシリアライズ・デシリアライズを管理する場合の話です。
>いったい何がしたいの?
オブジェクトとして使うときは、ファイルを読み込んでオブジェクト化し、関連あるオブジェクトとの参照関係をつくらなければなりませんが、その参照関係はコードで復元出来るので、
ファイルとしては別々に保存できるため、ファイルとしては別々にして各々同期するようにしたいということです。
>あと「同期」という言葉が出て来ますが、これって具体的には何と何を同期するの?
もちろん、ローカルとiCloud(Ubiquitous Storage)です。
0528デフォルトの名無しさん
2012/07/07(土) 09:16:46.290529デフォルトの名無しさん
2012/07/07(土) 11:12:29.09http://cdn.uploda.cc/img/img6946.jpg
http://libdspace.biwako.shiga-u.ac.jp/dspace/bitstream/10441/5193/1/fuchukiyo51
0530デフォルトの名無しさん
2012/07/07(土) 13:08:12.38ありがとう
昔の(NeXTの頃の)EOFとはほとんど同じだけど微妙に違うのね
0531デフォルトの名無しさん
2012/07/07(土) 13:43:58.10> もちろん、ローカルとiCloud(Ubiquitous Storage)です。
もちろんって言われても(^^;
iCloudストレージの話だということは、今初めて知ったよ。
それで、インターネットとのデータ通信量が最小限になるように最適化したいということか。。。
でもそれだと、もはやCoreDataとは別次元の話になってくるような気がするが。
ICloudストレージを使う場合、各デバイス間で同じ書類を編集したときに発生する「バージョン競合」の問題があるが、
これは今回はどのように解決するつもりなの?
0532デフォルトの名無しさん
2012/07/07(土) 13:51:44.69別スレッドで非同期で実行されるブロックの中からポストされたノティフィケーションって、
オブザーバ側には、オブザーバのスレッドで通知されるんでしょうか。それとも、ポストした側
のスレッドの中で通知(ポストした側のスレッドでオブザーバのメソッドが実行)されるんでしょうか?
0533デフォルトの名無しさん
2012/07/07(土) 14:01:22.95オブザーバ側のスレッドって何?
0534デフォルトの名無しさん
2012/07/07(土) 14:55:01.39ネットワークからのダウンロード処理等の時間のかかる処理を別スレッドでバックグラウンドで
動かして、処理が終わったら、NSNotificationをポストしてメインスレッド側に通知させようと
考えています。 通知する側と、通知される側(オブザーバ)がそれぞれ別スレッドで動いて
いるということです。
0535デフォルトの名無しさん
2012/07/07(土) 15:01:36.28NSNotificationCenterはどうやってオブザーバのスレッドとやらを調べるの?
0536デフォルトの名無しさん
2012/07/07(土) 15:08:07.63addObserverする時とかでしょうか?
0537デフォルトの名無しさん
2012/07/07(土) 15:19:42.70Postした側のスレッドで動くみたいですね。 失礼しました。
0538デフォルトの名無しさん
2012/07/07(土) 23:40:55.230539デフォルトの名無しさん
2012/07/08(日) 04:51:34.82ありがとうございます。
版の解決は、タイムスタンプで古い方を破棄あるいはマージする予定です。
あるリストについては全体として整合がとれてないといけないのでタイムスタンプベースで上書き、
あるリストについては各項目が他の項目に非依存なのでマージ、という感じです。
なので全体としてファイルラッパでひとつのUIDocumentを構成するか、
各リストでひとつのドキュメントにするべきか迷うところなんですが、、、
ちなみに、アプリケーション1つに対し1種類しか生成されないシングルトン的なリストというのもあるんですが
そういう場合はファイル名をひとつしか作らないようにして、
あらかじめバンドル内に古いタイムスタンプのドキュメントを用意しておいてコピー→同期ですかね・・・
初回起動時に新規作成すると、その日付が最新になっちゃうので同期したときに別のデバイスで編集した結果が消えてしまいますよね
0540デフォルトの名無しさん
2012/07/08(日) 14:11:35.47iCloudストレージでは、バージョン管理されたファイル単位で同期されるので、
ネットワークとの通信量を少なくしようと思ったら、物理的に小さなファイルを作るしかありません。
一つの大きなファイルをどうやって小分けにするのか、ということと、
小分けにしたそれぞれのファイルのバージョン競合をどうやって解決するのかは、両方同時に検討しなければならないでしょう。
> 全体としてファイルラッパでひとつのUIDocumentを構成するか
ファイルラッパーを使うのはいいけど、ファイルパッラー単位でバージョン管理してもダメですよね?
ファイルラッパーの中のファイルを個別にバージョン管理しないと。
そういゆ意味では、一つにUIDocumentが複数のバージョン付きファイルを取り扱う形になりますが、
UIDocumentのデフォルトの動作では、一つのバージョンしか取り扱えないんじゃなかったっけ?
> あらかじめバンドル内に古いタイムスタンプのドキュメントを用意しておいてコピー→同期ですかね・・・
> 初回起動時に新規作成すると、その日付が最新になっちゃうので同期したときに別のデバイスで編集した結果が消えてしまいますよね
そこがバージョン競合の難しいところですね。
ようするに、タイムスタンプだけでは競合を解決できないということですね。
別の方法を考えましょう。たとえばマージするとか。
0541デフォルトの名無しさん
2012/07/09(月) 14:17:04.61ちなみに独習C第4版を勉強中です
0542デフォルトの名無しさん
2012/07/09(月) 14:53:54.79そのまんま"xcode c"で検索したら山ほど情報があると思うよ
0543デフォルトの名無しさん
2012/07/09(月) 15:20:44.100544デフォルトの名無しさん
2012/07/10(火) 21:59:12.070545デフォルトの名無しさん
2012/07/10(火) 21:59:16.95オブジェクト間の通信をメッセージという概念でやってるだけなんで
たとえばインターフェイスビルダーで作ったUIから
数字を入力したアクションが飛んできたら
受け取ったあとのクラスの中身の処理はそのまんまCで書くだけだし。
俺も大学でC齧ったあとだいぶ間が空いてiOSでなんかやるかーと
趣味で復帰したんで、たしかにObj-C関係の入門や解説が
Cをどっか別のとこでやった人にObj-Cを解説する感じのばっかりな現状なのは
もうすこしなんとかならんのかなとは思う。
0546デフォルトの名無しさん
2012/07/10(火) 22:21:47.050547デフォルトの名無しさん
2012/07/11(水) 00:35:47.36LabelにTextFieldの数値を加算するメソッドで
これをただ足すのではなく、数字がどんどん増えるようにしたいんだけど、
一気に増えちゃうのよね。どうすれば良い?
以下ソース
- (IBAction)addScore:(id)sender {
[self.view endEditing: YES];
NSInteger i;
NSInteger j;
i = [scoreText.text intValue];
j = [addScoreText.text intValue];
addScoreText.text = [NSString stringWithFormat:@""];
for (NSInteger l = 0; l <= j; l++) {
scoreText.text = [NSString stringWithFormat:@"%d",i + l];
}
}
0548デフォルトの名無しさん
2012/07/11(水) 07:16:20.87NSTimer とか
そのメソッド内で NSRunLoop を回すとか
0549デフォルトの名無しさん
2012/07/11(水) 09:03:28.65MSのC#とかも「Cと違うところだけ列挙するから、
まずどっかでCを学習してきなよ」ってスタンスなのかね
0550デフォルトの名無しさん
2012/07/11(水) 09:21:39.24値を変えるblockを作りcompletionハンドラで次の値に変えるblockを再起的に呼び出すようにblockを呼び出す。
0551デフォルトの名無しさん
2012/07/11(水) 09:30:49.90そのようなLabelのサブクラスを作る方がわかりやすいと思う
0552デフォルトの名無しさん
2012/07/11(水) 09:57:04.22for (NSInteger l = 0; l <= j; l++) {
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
scoreText.text = [NSString stringWithFormat:@"%d",i + l];
}
だけでいいんだけど、回っている最中にボタンを押されるとリエントリーされるので、ちょっと工夫(インスタンス変数を持たねばならないとか)が必要
まあ、それ用のインスタンス変数を持たねばならないんだったらクラス分けたほうがいいよな
0553デフォルトの名無しさん
2012/07/11(水) 10:22:05.820554デフォルトの名無しさん
2012/07/11(水) 10:26:12.260555デフォルトの名無しさん
2012/07/11(水) 11:05:29.42@implementation UILabel (Animation)
- (void)animateFromCount:(NSInteger)firstCount toCount:(NSInteger)lastCount {
__block void (^block)(NSInteger, NSInteger) = ^(NSInteger currentCount, NSInteger lastCount){
[UIView animateWithDuration:0.001 animations:^{
[self setText:[NSString stringWithFormat:@"%d", currentCount]];
} completion:^(BOOL completion){
if (completion) {
if (currentCount < lastCount) {
block(currentCount+1, lastCount);
} else if (currentCount > lastCount) {
block(currentCount-1, lastCount);
}
}
}];
};
block(firstCount, lastCount);
}
@end
0556デフォルトの名無しさん
2012/07/11(水) 11:11:06.920557547
2012/07/11(水) 14:25:30.71まだ家に戻ってないので試してないんだけど質問です。
質問前は、forでループする前に画面更新の命令を1行追加する程度のイメージだったんだけど、実際のみんなの回答は結構複雑?でビックリ!
どんな仕様でクラスやらNSTimerやら追加しなくてはならないのか教えてくれると助かる。
他の言語からの移住民なのでここがクリア出来れば、objective-cと仲良くなれそうな気がしてるw
0558デフォルトの名無しさん
2012/07/11(水) 15:07:49.78C#はそもそも名ばかりのCなんで関係ありません
0559デフォルトの名無しさん
2012/07/11(水) 16:01:53.99-addNumberをボタンから呼ぶ。
- (void)addNumber
{
int a = [label.text intValue];
int b = [field.text intValue];
targetValue = a+b; //メンバ
timer= [NSTimer scheduledTimerWithTimeInterval:0.1
target:self
selector:@selector(updateLabel)
userInfo:nil
repeats:YES];
}
- (void)updateLabel {
int value = [label.text intValue] + 1;
if (value <= targetValue) {
label.text = [NSString stringWithFormat:@"%d",value];
} else {
[timer invalidate];
}
}
0560デフォルトの名無しさん
2012/07/11(水) 16:04:27.99Viewの更新(描画)を行うタイミング、及び、GPUのVRAMに書き込むタイミングのためという理由から
いまどきのどのOSでも似たようなもんだと思うけど
0561デフォルトの名無しさん
2012/07/11(水) 16:12:50.42例えば、
scoreText.text = [NSString stringWithFormat:@"%d",i + l];
は、インスタンス変数 text を変えるだけで、描画はされない。フラグを立てるだけ
そのフラグをチェックして scoreText に描画させるのは NSRunLoop のどっかでの処理(だと思う)
クラスやらNSTimerはそうしたほうが、プログラミングとして綺麗というのだけといえばだけ
0562デフォルトの名無しさん
2012/07/11(水) 16:19:38.85おそらくこいつはObjCとは仲良くなれない
0563デフォルトの名無しさん
2012/07/11(水) 16:23:06.550564デフォルトの名無しさん
2012/07/11(水) 16:25:21.27ObjCなんて馴れ馴れしく呼ぶのもどうかと思うがなw
コードの命令ですぐにスクリーンに反映という、前近代的なものを想定しているんじゃないかと
0565デフォルトの名無しさん
2012/07/11(水) 16:28:53.730566デフォルトの名無しさん
2012/07/11(水) 16:32:06.65マジにとるなよ
どうしてもおれはそれは「おぶじぇしー」と読んでしまうってだけだよ
0567デフォルトの名無しさん
2012/07/11(水) 16:34:51.74一気に計算が終わってしまうからどうしようって事だろ、単純に。
0568デフォルトの名無しさん
2012/07/11(水) 16:35:17.89あくまでも冗談の範囲でのことだからな
0569デフォルトの名無しさん
2012/07/11(水) 16:35:50.12おいジェシーって呼んでるように聞こえて
ジェシーおいたんを呼び捨てにするとは何事だって憤ってるのか?
そんなダニエルはタナー家にお帰りください
0570デフォルトの名無しさん
2012/07/11(水) 16:37:07.60>forでループする前に画面更新の命令を1行追加する程度
らしいよ。usleepかましても画面更新されないよ
ぐちゃぐちゃだな
0571デフォルトの名無しさん
2012/07/11(水) 16:38:05.12>憤ってる
何言っているの?強いて言うな違和感があるってだけだぞ。強いて言えばな。あほかw
0572デフォルトの名無しさん
2012/07/11(水) 16:43:01.36やっぱりLabelのサブクラスでやった方がいいよ
複数のラベルに同じ動作をさせたいとか、
複数のビューコントローラの管理下で制御したいとかで
ドンドン奇怪なコードが生成されていくのが目に見えてるんだけど
0573デフォルトの名無しさん
2012/07/11(水) 16:46:30.00これがアスペか
0574デフォルトの名無しさん
2012/07/11(水) 16:47:22.19究極(?)にはそれだね
プログレスバーみたいなもんといえばみたいなもんだしね
0575デフォルトの名無しさん
2012/07/11(水) 20:54:11.44{}の中に宣言しないようになったのか。
サンプルコードとかみたらプロパティ宣言になってた。
それで気になったんだけど、クラス外からアクセスしないような変数もプロパティで宣言するのが今の動向なのだろうか?
0576デフォルトの名無しさん
2012/07/11(水) 21:54:40.11@interface Hoge()
{
// ここで
}
//プロパティ宣言も書ける
@end
実装ファイルに書きます。
実装ファイル内なので、他から参照されません。
ObjCは柔軟すぎるので完全には隠せませんが。
0577デフォルトの名無しさん
2012/07/11(水) 22:09:11.960578デフォルトの名無しさん
2012/07/11(水) 22:15:27.55ありがとうございます
外部に公開しないものはヘッダに書かないほうがすっきりするな
0579デフォルトの名無しさん
2012/07/11(水) 22:20:15.81objective-cの規則(メソッドの命名規則とか、プロパティとそのインスタンス変数の名前は別のものにするのが良いとか)をまとめたサイトとかないのですかね。
0580デフォルトの名無しさん
2012/07/11(水) 22:32:47.79あとGoogleのやつも参考にしてる。
でも最終的には俺ルールで書いてる。
0581デフォルトの名無しさん
2012/07/12(木) 00:13:15.85俺もそっちに書いているな
0582デフォルトの名無しさん
2012/07/12(木) 00:19:29.950583デフォルトの名無しさん
2012/07/12(木) 00:30:27.67インスタンス変数をサブクラスでも直で使いたいなら、昔どおりの記法でいいんじゃないの
プロパティ(setter)なら、同じようにproperty宣言とdynamic宣言すりゃ使えるでしょ。いちいち書くの面倒だったらプロテクテッドヘッダにでも。でもなんかそりゃ違うだろうという
0584デフォルトの名無しさん
2012/07/12(木) 08:07:45.530585デフォルトの名無しさん
2012/07/12(木) 12:43:09.89そういえばサンプルでもあまりみないね。何でだろ?
C++で書くときは割と厳密にそこらへん決めるのに。
0586デフォルトの名無しさん
2012/07/12(木) 12:44:09.790587デフォルトの名無しさん
2012/07/12(木) 12:49:59.400588デフォルトの名無しさん
2012/07/12(木) 13:15:29.90実装ファイル側に書けるからもはやあんまり必要ないかも。
出来ればC++でもprivateメンバとかヘッダ側に書きたくない。
0589デフォルトの名無しさん
2012/07/12(木) 13:30:59.270590デフォルトの名無しさん
2012/07/12(木) 14:59:49.01マクロ使えよ。
#define ZESSAN_KOKAICHUU @public
とか
0591デフォルトの名無しさん
2012/07/12(木) 22:56:15.36いまさらそれだけがキモいというのがわからんな
@optional
@required
はどうなの?publicがキモいのはわかるが、とかだからなあ
0592デフォルトの名無しさん
2012/07/12(木) 23:18:33.59アクセサメソッドを経由したくない場合は。
0593デフォルトの名無しさん
2012/07/12(木) 23:29:05.76> @optional
> @required
は使い場所が @ public とは全然違うだろ。無いよりはあった方が良い機能としか思わんな。
0594デフォルトの名無しさん
2012/07/13(金) 00:14:14.52意味わからんw
無いよりはあった方が良いとかじゃなくて、キモいって言っているんだぞ?
キモいけど、無いよりはあった方が良いってのだったら、そんなこと聞いていない
0595デフォルトの名無しさん
2012/07/13(金) 00:16:51.43ちなみに
強いて言えば無いよりはあった方が良いのは @public、@protected、@private な
@optional (@required) な無かったら困る機能だからな
よーく考えような。いろいろとw
0596デフォルトの名無しさん
2012/07/13(金) 00:21:36.930597デフォルトの名無しさん
2012/07/13(金) 00:54:12.74好きとか嫌いとかならまだ分かるがキモいって..
キモいって言葉使っちゃう俺ってオシャレ? ってことなの?
0598デフォルトの名無しさん
2012/07/13(金) 01:11:52.44俺の価値観?
今のDelegateは@optionalに依存しているんだけど、知らないんだったらしょうがないなあ
0599デフォルトの名無しさん
2012/07/13(金) 01:16:38.38まあ、そういうもんだろ。人とは違う俺オシャレというw
0600デフォルトの名無しさん
2012/07/13(金) 01:17:26.26それまではなくてもなんとかなったってことか。
プロパティ構文が導入されてドット表記と
[]のメッセージ送信が入り乱れるのが見た目的にあれかな
メッセージ送信のみで書いた方が揃うかなー
だったら代入もメッセージ送信にしたほうがLispみたいで揃うかな
0601デフォルトの名無しさん
2012/07/13(金) 01:19:34.17以前はDelegateメソッドはカテゴリで宣言していた。受け側は単なる id
明確化のためにプロトコルに変えたんじゃないのかな。@optionalはDelegateのためにってこでも言い過ぎではないかな
0602デフォルトの名無しさん
2012/07/13(金) 04:29:31.61長い。
0603デフォルトの名無しさん
2012/07/13(金) 10:47:00.64Cなのに80文字に収まらないのが気持ち悪い
NSとCFで一番長いメソッド名ってなんだろ
識者に聞きたいんだけど
#importって.hと.mのどっちに書いた方がいいのかな?
使うやつ全部.hに書いて.mは.hのみimportっていうやり方なんだけど
あくまでそのファイルで必要なだけのやつのほうがいいかな
.hならプロトコルとか。あと@classを使って最小にするとか
0604デフォルトの名無しさん
2012/07/13(金) 12:04:07.04必要なら .hには@classで名前解決だけして、実際のインポートは.m でやる
のがオサレだろ。
使うヘッダを片っ端から.h でインクルードしてるソース見ると、あ、こいつ
分かってないなと思う。
0605デフォルトの名無しさん
2012/07/13(金) 12:59:30.50でもそれって素の#includeでの問題のためだよね。#importは別にそんなに気にすることじゃない
それとは別にヘッダーでヘッダーを#importするとリコンパイルする範囲が広がる可能性が高いってのはあるが、それは別にヘッダーでヘッダーを#importすると必ずというわけでもないので、言うような2値で判断出来る要素ではないと思うけど
好きにすばいいことじゃない。まあAppleの流儀は言うような形のようだけどね
0606デフォルトの名無しさん
2012/07/13(金) 14:01:30.17違うだろ。
0607デフォルトの名無しさん
2012/07/13(金) 14:02:16.04それでもいいだろうが、ある程度大きなプロジェクトでトライ&エラーの繰り返しで開発して
いくような人にはコンパイル時間の差も馬鹿にはならないだろ。
ためしに、プロジェクト名-Prerfix.pch を編集してコンパイルしてみ? 全ソース
のコンパイルが始まるから。この時間が苦にならないようなら、好きにすれば
いいんじゃね?
0608デフォルトの名無しさん
2012/07/13(金) 14:15:54.49こんなのどう考えてもおかしいだろ?
俺を使うにはこいつらが必要だ!てのはヘッダで他は全て実装ファイルだろ
0609デフォルトの名無しさん
2012/07/13(金) 14:30:13.12何を言っているかわからないが、そんな基本的なこと言っているのだったら、ヘッダーにヘッダーを入れるなというあなたも2値でしか考えられない人なんこあというのはわかるなw
ヘッダーにヘッダーを取り込んでも必要最小限度に抑えれば好きにすればいいってことだぞ?
あんたのプロジェクトは循環しまくっているのかなんなのが、そういうことをしたらプリコンパイルヘッダーみたいに全部が影響を受けるのだろう。設計を見なした方がいいなw
0610デフォルトの名無しさん
2012/07/13(金) 14:33:59.61#ifndef HOGEHOGE_H や #pragma once はヘッダーで定義しているので、ヘッダーを読み込まなければわからないので、同じファイルを何度も読みこむようなことになるだろう。ヘッダーでヘッダーだと
#import はヘッダーは一度しか読み込まない仕様だよ?
0611デフォルトの名無しさん
2012/07/13(金) 14:42:19.47俺を使うにはこいつらが必要だ、でも @class だけでヘッダーは実装ファイルじゃなきゃダメだという頭の固いのがわけわからんことを言い出しているんだけど
別にどっちでもかまわないことだろう
このクラスを使いたいからこのヘッダーをというのは理にかなっているし、簡単で別にかまわないことなのにな
極端に言いえば、このクラスを使いたいのだがこのクラスはあのクラスも使っているからあのヘッダーも、あのクラスはあっちのクラスも使っているのであっちのヘッダーもってめんどくさっと思うけど、別にそれはそれで勝手にすればいいことではある
趣味の範囲の話だなw
0612デフォルトの名無しさん
2012/07/13(金) 14:49:19.260613デフォルトの名無しさん
2012/07/13(金) 14:54:45.09ヘッダーでヘッダーをという問題で、何を問題にしているか具体的にわからないから、これも問題と見なしているのであればって話
0614デフォルトの名無しさん
2012/07/13(金) 15:06:21.40こういう低レベルな奴の相手するのがそもそもの間違い。
0615デフォルトの名無しさん
2012/07/13(金) 15:56:55.83ヘッダで極力他のヘッダをインクルードしない方がいいうというのはこういうこと。
a、b、c、d、e というクラスがあったとしよう。
c,d,eはそれぞれbに依存し、bはaに依存する。
[a]
↑
[c]-->[b]<---[e]
↑
[d]
c.h、d.h、e.hでそれぞれがb.h をインクルードし、b.h はa.hをインクルードしたとしよう。
この場合、クラスaのインターフェースが変わり、a.hを修正すると、bだけじゃなく、cもdもeも
つまり、全部コンパイルしないといけなくなる。(ヘッダが依存関係を持っているので)
ところが、それぞれがヘッダではなく、ソース(.mの方)でインクルードしていたとすると、
a.h の修正による影響を受けるのは、bだけで、c,d,e自体は再コンパイルの必要がない。
(もちろん、c,d,eが直接aを参照していないことが前提だが)
つまり、コンパイル時間に影響するというのはそういうことだよ。本来必要のないソースまで
再コンパイルされてしまうということ。
プロジェクト名-Prerfix.pchは全てのソースから参照可能なので、これを修正すると全ての
ソースの再コンパイルが必要になる。
0616デフォルトの名無しさん
2012/07/13(金) 17:58:45.41@public 使うような設計がキモいんだよ。
オシャレとか何言い出してんのお前。
0617デフォルトの名無しさん
2012/07/13(金) 18:06:33.48自分の感性に合わないことは断固として認めない昭和の頑固オヤジw
柔軟性の欠片もない凝り固まった頭でキモいキモいを連発w
0618デフォルトの名無しさん
2012/07/13(金) 18:55:28.79キモいって程じゃねえなあw
0619デフォルトの名無しさん
2012/07/13(金) 19:10:57.740620デフォルトの名無しさん
2012/07/13(金) 19:30:38.080621デフォルトの名無しさん
2012/07/13(金) 23:45:22.41たぶん昔の「あんたたちイモね」ってのと同じレベルの慣用表現太と思うよ>「キモイ」
0622デフォルトの名無しさん
2012/07/13(金) 23:58:07.25オサレが昔のナウい?
0623デフォルトの名無しさん
2012/07/15(日) 12:31:00.960624デフォルトの名無しさん
2012/07/20(金) 13:35:41.52画面の数分の1くらいの大きさのModalを表示させて、残りの部分は、
裏側のViewが見えたまま、みたいな事をしたいんですが、StoryBoardで実装できますか?
Modal用にViewControllerを用意してSegueで繋いでStyleをModalにしても、
Modalが全画面表示みたいな感じになってしまって困ってます
0625デフォルトの名無しさん
2012/07/21(土) 09:45:29.77信じやすいことがこの動画で実証されています。
いわばマスコミ報道の「鵜呑度」を国際比較すると、
日本人は、先進国中ダントツに「鵜呑度」が高く70%、
最も低い国民は英国で14%です。
その他の主要欧米諸国(ロシアを含め)は20−35%です。
日本に近い国は、ナイジェリア、中国など、途上国と新興国となります。
別の言い方をすれば、日本人の70%は、
自分の頭で考えず(思考停止)、
テレビ、新聞、週刊誌などのマスコミの情報を鵜呑みにしていることを意味します。
青山は以前からこれを「観客民主主義」と言っています。
観客民主主義は、マスコ ミの情報操作による世論誘導に最も陥りやすく、
独裁にも呼応しやすい特性を持っています。
マスコミ報道「鵜呑度」
日本人70%、英国人14% You Tube
http://www.youtube.com/watch?v=ypPqsWUC6Vo
http://www.asyura2.com/12/senkyo132/msg/578.html
0626デフォルトの名無しさん
2012/07/21(土) 15:08:48.291、「開発段階で事故が相次いだオスプレイ」
元データにはたどり着けなかったが、開発で事故を多発した期待はいっぱい有るぞ
>CH-46も初期はよく落ちてましたから。
https://twitter.com/obiekt_JP/status/212207201832534017
2、「運用開始後も・・・」
重要なのは飛行時間あたりの事故率とその原因だ、事故率は他の機体のほうがはるかに高い
>オスプレイのモロッコとフロリダの事故
http://obiekt.seesaa.net/article/280173146.html
3、「安全性への懸念が指摘されています」
沖縄にオスプレイを配備されると困るチャイナ・北朝鮮とその手下だけだぞ
イギリスの航空ショーでデモ飛行をしたのは報道したのかよ
>MV-22 オスプレイ Osprey RIAT 2012 Jul.8
http://www.youtube.com/watch?v=vXrH2KkYzfw
BPOはこちら。
http://www.bpo.gr.jp/
因みにNTVで配線間違い(F-2が小牧でひっくり返ったのと同じ)で事故を起こした時の動画をしつこく流してたんで、
BPOに文句つけたらようやく認めやがったw
おまけ、事故画像リスト
http://oopslist.com/
0627デフォルトの名無しさん
2012/07/22(日) 15:28:40.17下記の1回目のNSLog()をコメントアウトすると2回目のNSLog()で
aにnilが代入されているのですが、これはなぜでしょうか?
NSLog()がaを保持するのでしょうか?
__weak id a;
id b = [[NSObject alloc] init];
id c = [[NSObject alloc] init];
a = b;
NSLog(@"a:%p", a); // このNSLogをコメントアウトする次のNSLog()のaはnilが代入されている
b = c;
NSLog(@"a:%p", a);
0628デフォルトの名無しさん
2012/07/22(日) 16:02:27.65b=cした時点でbからリテインされていたオブジェクトがreleaseされaからリテインされてないからdeallocされてaがゼロ化される。
0629627
2012/07/22(日) 18:11:57.002回目のNSLog()の時にaがゼロ化されていないのですが、なぜでしょうか?
本当ならゼロ化されてnilになってるはずだと思うのですが。。。
0630デフォルトの名無しさん
2012/07/22(日) 18:32:46.90最初のNSLogの中で a の中身が autoreleasepool に積まれてるみたいだ。
だから b=c しても、元々bが指してたものは生きてる。
0631デフォルトの名無しさん
2012/07/23(月) 01:30:19.39できる。presentModal はフルスクリーンにしかならないので、CustomSegue と、ViewController で自分でそういうタイプのモーダルにする
0632デフォルトの名無しさん
2012/07/23(月) 15:56:37.22自分のiphoneではエラーがでなく、他人のiphoneにてエラーが出てしまって、わけわからずにいます。。。
どうやら、uiimagepickerがメモリリークを起こしているのかと思っております。ただ改善方法がよくわからずにいます。
ソースは下記のような形になってます。
- (IBAction)button02:(id)sender {
@autoreleasepool {
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.showsCameraControls = NO;
imagePicker.delegate = self;
cameraOvarLay.imagePicker2 = imagePicker;
[imagePicker.cameraOverlayView addSubview:cameraOvarLay.view];
[cameraOvarLay setCameraOverlay:[delegate selectedNumber]];
[self presentModalViewController:imagePicker animated:YES];
}
}
ちなみに、imagePicker変数は、同クラスのviewDidLoadにて、UIImagePickerをallocしています。
このクラスは、最初に呼ばれるとその後呼ばれる事はありません。
autoreleasepoolが問題なのでしょうか?ARCは使っています。
なぜ僕のiphoneだと出ないのでしょう??4s ios 5.0.1
0633デフォルトの名無しさん
2012/07/23(月) 17:09:14.510634デフォルトの名無しさん
2012/07/23(月) 20:59:21.12よく出るのが、
error: failed to launch '/Users/apple/Library/Developer/Xcode/DerivedData/uiview-fcgzokzioetqhoattzkqljnkymwt/Build/Products/Debug-iphoneos/uiview.app/uiview' -- failed to get the task for process 1968
なのですが、何かわかりますか?CodeSigningIdentityで、ディストリビューションを設定するとこの現象に陥ります。
0635デフォルトの名無しさん
2012/07/24(火) 18:29:20.03属国の歴史しか無くて、ずっと独自文化がゼロなのはなぜなのか本当に良く判るわw
< #`Д´> <うぎゃああああ!!フランス人までネトウヨの嫌韓厨だったニダーーー!!!ネトウヨ!ネトウヨ!ネトウヨ!!
■フランスメディア「KPOPに独自性は感じられない」「日本や米国の模倣」「商業主義」「つまらない」
パリで韓流コンサート「日本文化から韓国を知った」
2011/06/14(火) 09:45
一方、コンサートが終了した現在、当日の模様について報道しているフランスのメディアは
比較的少ない。この状況下、コンサートの模様を報じているのは、フランスのニュースサイト「Rue89」だ。
中でも目立つのが、K−POPは特に独自性が感じられないという意見だ。これまでフランスでファン層を
増やしてきたJ−POP、ひいては米国のポップスを踏襲しており、商業主義的な音作りだという意見や、
演奏がコンピューター管理されているためか野性味に欠けるといった意見が寄せられている。
http://news.searchina.ne.jp/disp.cgi?y=2011&d=0614&f=national_0614_016.shtml
0636デフォルトの名無しさん
2012/07/25(水) 11:46:43.660637デフォルトの名無しさん
2012/07/25(水) 12:03:24.14街宣右翼の張り紙や極左のビラまきといっしょ。内容的にもの挑発的攻撃的なのが似ているし
0638デフォルトの名無しさん
2012/07/25(水) 16:25:10.35なるほど、理解しました。
CustomSegueと↓のを組み合わせれば出来そうな気がします。
ありがとうございました。
ttp://www.cyrus.co.jp/tdiary/?date=20101005
0639デフォルトの名無しさん
2012/07/26(木) 00:36:08.43@synthesizeが省略可
NSArrayとNSDictionaryとNSNumberのリテラル追加
NSArray* list = @[@11, @22, @33];
NSDictionary* map = @{@"name":@"Red", @"value":@"#FF0000"};
0640デフォルトの名無しさん
2012/07/26(木) 01:23:36.09変数名が_プロパティ名になるのって公式にはどこに出てるの?
WWDCのスライドしかみつけられんかった
0641デフォルトの名無しさん
2012/07/26(木) 02:50:57.720642デフォルトの名無しさん
2012/07/26(木) 03:26:56.700643デフォルトの名無しさん
2012/07/26(木) 04:10:14.59id _hoge;
}
@property (noneatomic,retain) id hoge;
@end
@implementation
@synthesize hoge;
@end
とした場合に、_hoge に自動的にアサインされるってことだよ。id hoge; でもアリだがな
そういう流れだし、インスタンス変数名に _ のこだわりを持つAppleだから不思議ではない。どっちにするってときに
0644デフォルトの名無しさん
2012/07/26(木) 07:02:13.21http://engawa.2ch.net/test/read.cgi/poverty/1343227547/
スイス、外国人犯罪者を追放へ 生活保護の不正受給も対象
スイスで28日、特定犯罪をおかした外国人を自動的に
国外追放する法改正の国民投票が行われ、賛成52.9%で承認された。反対は47.1%だった。
特に、スイス人口の大半を占めるドイツ系住民の賛成票が多く、全26州のうち否決はわずか6州だった。
今回の国民投票は極右政党「スイス国民党(SVP)」が主導したもの。現行法では、
有罪となった外国人に対しては判事の個別判断で国外追放処分とすることができたが、
改正新法では、特定の犯罪で有罪判決を受けた外国人は自動的に国外永久追放となる。
対象となる犯罪行為には、強姦、深刻な性犯罪、強盗などの暴力行為、麻薬密輸のほか、
生活保護の不正受給も含まれる。
www.afpbb.com/article/politics/2776977/6517971
0645デフォルトの名無しさん
2012/07/26(木) 20:15:22.91@interface Hoge
@property int boke;
@end
@implementation Hoge
// @synthesize boke = _boke; ←これ必要
- (int)boke {
return _boke; ←エラー
}
@end
>>643
>640が言っているのは、そういう話じゃないと思うぞ
0646640
2012/07/26(木) 22:35:04.77情報サンクス
そうそう。以前だと
@synthesize プロパティ名
だけだとプロパティ名と同名のプライベート変数が出来てたよね
643のコードだとhogeと_hogeが同時に存在してしまう
0647デフォルトの名無しさん
2012/07/26(木) 23:47:51.330648デフォルトの名無しさん
2012/07/27(金) 11:40:23.34この本の45ページのサンプルを実行してみたのですが、
本に書いてあるような実行結果になりません。どうして?
サンプル
---------------
id __weak obj1 = nil;
{
id __strong obj0 = [[NSObject alloc] init];
obj1 = obj0;
NSLog(@"A: %@", obj1);
}
NSLog(@"B: %@", obj1);
----------------
本に書いている実行結果
A: <NSObject: 0x753e180>
B: (null)
----------------
やってみた結果
A: <NSObject: 0x6a16a60>
B: <NSObject: 0x6a16a60> <- 破棄されていないしnilもセットされてない。
スコープから外れても必ずしもすぐに破棄されるとは限らないってこと?
教えて!エラい人。
0649デフォルトの名無しさん
2012/07/27(金) 11:42:08.21書籍の名前は「エキスパート Objective-C プログラミング -iOS/OS Xのメモリ管理とマルチスレッド-」です。
ISBN: 9784844331094
0650デフォルトの名無しさん
2012/07/27(金) 11:45:17.37>>630
0651デフォルトの名無しさん
2012/07/27(金) 12:00:42.27直前に同様の質問があったとは!面目次第もございません。
NSLogをコメントにしてデバッガでトレースしたところ確かに本の結果となりました。
ありがとうございました。
0652デフォルトの名無しさん
2012/07/27(金) 14:03:26.20WWDC 2012 Session 405 によれば
readonly propertyの場合
getterを実装すると自動@synthesizeが無効化される
readwrite propertyの場合
getterとsetterの両方を実装した時のみ、自動@synthesizeが無効化される
どちらか片方だけの実装では無効化されない
なので、その場合はエラーにならないはず。
0653デフォルトの名無しさん
2012/07/28(土) 00:48:17.80なるほど。
実はあの後、いろいろコードを弄っているうちにエラーが出なくなってしまった。
最初、getterを実装した瞬間にエラーが出たのは、Xcodeのエディタの誤動作だったのかもしれない。ビルドを試しておくべきだった。
0654デフォルトの名無しさん
2012/07/28(土) 15:01:18.73@property (noneatomic,retain) id hoge;
@end
@implementation{
BOOL isNani;
}
@end
0655デフォルトの名無しさん
2012/07/29(日) 00:49:18.95Objective-Cは下記のサイトの各項目を読んだ程度でホントに基本的なことしか分かりません。
http://www.atmarkit.co.jp/fcoding/index/objc.html
特にやりたい処理にどういった命令を使えばいいのかなどさっぱり分からない状態です。
そういった部分も含めて「これらを熟読すれば大体作れるようになる」とオススメするサイト・書籍はありませんでしょうか?
情報関係の知識は基本情報・応用情報をもっている程度で、
プログラミングの知識はCやCOBOLなどで本当に簡単で事務処理的なプログラミングができる程度です。
ポインタも理解はしています。
0656デフォルトの名無しさん
2012/07/29(日) 01:12:19.860657デフォルトの名無しさん
2012/07/29(日) 01:48:02.49例えばどんなやつ?
標準のUIKitで実現可能なやつもあれば
OpenGL周辺のライブラリやら
Core XXXXのライブラリをがしがし書くのを覚えた方がいいのもある
0658デフォルトの名無しさん
2012/07/29(日) 02:23:28.960659デフォルトの名無しさん
2012/07/29(日) 02:27:23.76どんなというとゲームの種類についてでしょうか?
一番初めに作ろうと思っているのはチャリ走にもっとボタンをつけたようなゲームです。
ステージの続き?をランダムで描画させたりしないといけないですよね?
自分が作ろうと思っているゲームは2Dゲームのみで、ゲームに必要なボタンや文字などはほぼすべて画像を用意するつもりです。
聞きたい内容と違っていたら申し訳ありません
0660デフォルトの名無しさん
2012/07/29(日) 18:43:44.21http://japaneserank.enq1.shinobi.jp/comment_record/101289/
■1位 韓国 24871票
■2位 中国 614票
■3位 北朝鮮 203票
■総投票数 25982票
0661デフォルトの名無しさん
2012/07/29(日) 20:08:04.19javaやlinuxは手間がかかる 一人でやるには手間がかかりすぎる 手間がかからないで一人で開発できて
人の多いところで直接販売できる仕組みが提供されているメーカ製言語だけやる ずばりiphone またはWindow 8 Metro App Store C#
やるならメーカー製の言語 洗練された仕様 脆弱性が少なく 開発ソフトが優れ 課金ライブラリ アップデートライブラリが提供されていて 情報、書籍が多く開発しやすい
奴隷になりたければオープン系をやればいい 時間がかかり 人は多く 仕事の取り合い 足の引っ張り合い 脆弱性が多く 互換性がなく 癖があり 大規模開発中心
詳細設計しかやれない体になって年取ってぽいだ 独立もできない 手間のかかりすぎる仕様だから
派遣屋 IT経営者はその方が喜ぶ 大規模分割開発では使い捨てても独立はできまい 代わりはいくらでもいる 嫌なら辞めろ
若い派遣営業は舐めた態度をとってくる ひどいピンハネ
オープン言語、日本独自開発の言語・フレームワーク ガラパコ携帯 javascript html5 android java linux python rubyやnode.jsとかやめとけ
メディアに金を払ってステマ宣伝してくるが釣られて手を出しても情報は少なく手間がかかり スパゲッティコード 未完成 デスマに陥る
コンパイルできないからパクられ 直接売る場所がないから企業に買い叩かれ金にならない 生きていけない奴隷仕様だ
ここから抜け出すにはiPhone一択 またはWindow 8 Metro App Store(未確) C#
Objective-CやC#を覚えるとサーバーサイドからクライアントサイドまでカバーでき人の多い場所でソフトを売る権利を得られる
仕事や趣味でこれらの言語をやっておけば派遣切りされても会社辞めることになってもソフトを売って生きていける それはセーフティーネットになる
WEBサーバーIIS Win2008ServerVPS SqlServer Oracle MySql 言語はマーケットで売れるメーカー製のみ C#は自分用業務支援ツールとして使える
例えばPHPでWEBアプリを作っていて管理者画面はC#(EXEアプリ)で作るとかなり早く作れる(Smartyなんか使うよりもかなり早くだ)
0662デフォルトの名無しさん
2012/07/30(月) 00:16:07.52@compatibility_ariesコンパイラディレクティブって何に使うんでしょうか?
0663デフォルトの名無しさん
2012/07/30(月) 06:21:38.73http://engawa.2ch.net/test/read.cgi/poverty/1343579821/
PEACE&GREEN BOAT 2012 開催! −いま、コリアの人々と船出しよう
今年12月、4年ぶりにPeace&Green Boatが出航します。テーマは「脱原発」。
日韓3ヶ所の原子力発電所を訪れ原発の「いま」を見つめ、
原発立地地域の人々との交流を通じて「脱原発」を進めるために必要なことを考えます。
旅をより充実したものへとナビゲートしてくれるのが水先案内人の皆さん。
PEACE&GREEN BOAT2012には多彩な水先案内人の方々が参加予定です。
原発のない社会に向けて、共に各地をめぐり語り合います。(※順不同・敬称略)
アイリーン・美緒子・スミス (グリーン・アクション代表)
鎌田慧 (ルポライター)
田中優 (環境活動家、ap bank監事)
古市憲寿 (社会学者)
松田美由紀 (女優・写真家)
宮台真司 (社会学者)
山本太郎 (俳優)
[魚拓]
http://megalodon.jp/2012-0726-2316-13/www.peaceboat.org/cruise/pg2012/index.shtml
http://niceboat.org/10/s/10ko323392.jpg
または
http://i.imgur.com/lY0nX.jpg
[どうしても直接踏んでソースを確認したい人は]
http://www.pbcruise.jp/cruiseList/peacegreen/index.html
http://www.peaceboat.org/cruise/pg2012/index.shtml
0664デフォルトの名無しさん
2012/07/30(月) 09:42:00.060665デフォルトの名無しさん
2012/07/31(火) 13:59:37.07なるまでwhile()ループする処理を入れています。
で、ループの直前でNSTimerでタイマを仕掛け、タイマ発火時にFALSEにする
ようにしましたが、ループが回っている間はタイマが発火しなく、無限ルー
プなってします。
ループの最後に[[NSRunLoop currentRunLoop] run];でメッセージを処理さ
せるようにすると指定時間でタイマが発火するのですが、runから処理が戻る
まで3秒以上かかってしまっていて、使えません。
Windowsですと、スレッド内でSetTimer()すると無限ループ中でもタイマ
イベントが発火するのですが、Macではどのようにしたらいいのでしょうか?
0666デフォルトの名無しさん
2012/07/31(火) 14:17:09.500667デフォルトの名無しさん
2012/07/31(火) 14:28:40.27もう一個別のスレッドでタイマを仕掛けるんでしょうか?
今、ループ直前のタイマセット処理を別スレッドに移動して、タイマセット
処理を書いていたところにNSThreadを起動するようにしてみたのですが、
だめでした。
0668デフォルトの名無しさん
2012/07/31(火) 14:41:28.39>NSThreadで起動したスレッドの内部で、オブジェクトのbool型変数がFALSEに
>なるまでwhile()ループする処理を入れています。
出発点がそもそもおかしいと思うが。
普通はセマフォとかメッセージ待ちにするでしょ。
0669デフォルトの名無しさん
2012/07/31(火) 14:50:52.21__block bool done = false;
dispatch_async(
dispatch_get_global_queue(
DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^{ sleep(3); done = true; });
while (!done) {}
0670デフォルトの名無しさん
2012/07/31(火) 15:06:34.03同期したいんじゃなくて、一定時間だけ処理させたかったんです。
>>669
結局、それに近い処理で実装してみました。
ループ前にNSDateで現在時間を取って、ループの最後でtimeIntervalSinceDate
で差を取得し、指定時間が経過していたらbreakするように。行儀悪いですが、
ひとまずは目的は果たせています。
スレッド内でのループ処理をタイマで抜けるようにする手法はないんでしょう
かね。
0671デフォルトの名無しさん
2012/07/31(火) 15:10:27.29>結局、それに近い処理で実装してみました。
近くねえじゃん。
0672デフォルトの名無しさん
2012/07/31(火) 15:56:43.79NSTimer の説明よく読んでみ
NSTimer は NSRunLoop 内でってことなんだから、定期的に NSRunLoop 呼びださなきゃダメやん
そういう意味でも出発点がかしいと思う
NSRunLoop ですぐに戻ってきて欲しい場合は run じゃなくて runUntilDate: 使えばだけど、Timer 使いたいってのがわからない/使わないそれと変わらないので、それでいいんじゃないの
0673デフォルトの名無しさん
2012/07/31(火) 16:36:29.10ループ回るのにミリ秒単位で時間かかるなら、これで十分だよ。
const CFAbsoluteTime timeOut = CFAbsoluteTimeGetCurrent() + 1.0; // 1 sec timeout
do {
}while (CFAbsoluteTimeGetCurrent() < timeOut);
0674デフォルトの名無しさん
2012/07/31(火) 18:46:46.13> NSTimer は NSRunLoop 内でってことなんだから、定期的に NSRunLoop 呼びださなきゃダメやん
定期的にNSRunLoopを呼ぶよりは、そのループ処理そのものを一つのタスクとしてNSRunLoopにスケジュールした方がいい。
そして、自身のタスクを再帰呼び出ししてループする
- (void)Looping:(id)arg
{
// ループ処理
[[NSRunLoop currentRunLoop] performSelector:@selector(Looping:) target:self argument:arg order:1 modes:@[NSDefaultRunLoopMode]];
}
タイマー処理で、上記のLooping:のスケジュールをキャンセルすれば処理終了
0675デフォルトの名無しさん
2012/07/31(火) 18:54:52.32それって、本当に再帰ってかどんどん深入りしているようだけど?
本当にした方がいいのか?
0676デフォルトの名無しさん
2012/07/31(火) 19:06:04.54performSelector:target:argument:order:modes: は @selector(Looping:) 呼び出し命令を登録するだけ。
実際に呼び出す前に返ってくる。
0677デフォルトの名無しさん
2012/07/31(火) 20:26:01.42>>672
> NSTimer は NSRunLoop 内でってことなんだから、定期的に NSRunLoop 呼びださなきゃダメやん
これは、僕が最初に書いた[[NSRunLoop currentRunLoop] run];でしょうか。
特にタイマが使いたいわけではないんですが、スレッド内で一定時間だけ処理して、
時間が来たらそこまでで処理を終わる、ということがしたかっただけなんです。
ずっとWindowsプログラマだったので、こういうときはタイマを使っていたので、
その頭でMacプログラムでも同じやりかたをしたというだけなんです。
>>673
おっ、これは僕が最終的に書いたNSDateの比較より、少し綺麗ですね。
ループ処理中は、外部からのイベントなどでループ処理を抜けることは考えて
いないので、開始時間から指定時間経過するのを毎回チェックすればいいやと
考えているところです。
>>674
これは、ちょっと僕の知識では追いつけないです(^^;
本読んで、がんばって理解してみます。
0678デフォルトの名無しさん
2012/08/02(木) 15:55:17.88@trueとかは使えるのですが@YESとか@NOリテラルはコンパイル時にエラーになります。
0679デフォルトの名無しさん
2012/08/02(木) 19:56:45.36こっちでは、使えたけど?
@YESや@NOだけじゃなく、@'a'とか、@( object1.intValue + object2.intValue )なんかもOKだったよ
0680デフォルトの名無しさん
2012/08/02(木) 20:33:23.91clangのバージョンが古いとそうなる
0681デフォルトの名無しさん
2012/08/02(木) 21:28:23.75compilerはApple LLVM Compiler 4.0なんですが、古いですかね。
@[]とか、他のリテラルは問題なく使えるのですが・・・。
0682デフォルトの名無しさん
2012/08/03(金) 04:26:27.45http://www.nicovideo.jp/watch/sm18497988
8月19日 フジデモ一周年 お台場フジテレビ抗議デモ 告知動画
http://www.nicovideo.jp/watch/sm18468199
【告知】8・19フジデモ一周年inお台場
http://www.nicovideo.jp/watch/sm18413040
かつての「視聴率王」も今は昔――フジテレビに異変が起きている。
2004年から7年間、年間視聴率3冠王に君臨していたが、昨年、日本テレビにその座を奪われたのに始まり、
オダギリジョーが主演した今年4月期のドラマ「家族のうた」は、視聴率3%台で打ち切り。
さらに4〜6月期の平均視聴率はテレビ朝日にも抜かれ、3位に。7月には「3冠王を逃したため」(フジテレビ関係者)、
局長やプロデューサーなどが大幅に入れ替わるテコ入れがなされたが、"迷走"は止まらない。
その一例が情報番組「とくダネ!」だという。
言わずと知れた小倉智昭がメーンキャスターを務める朝の看板番組だ。
同局の人気アナ、ナカミーこと中野美奈子の退社に伴い、
7月からキャスターに抜擢されたのがタレントの菊川怜だったが、その評判が芳しくない。
「同じ時間帯では、日テレの『スッキリ!!』と『とくダネ!』が視聴率を競い、これまではフジが優勢でした。
週5回の放送で負け越しが続くなんてことはほぼなかったのですが、菊川に代わった翌週から、1勝4敗が2週続きました。
扱うニュースなどにもよるので一概にキャスターの責任にはできませんが、菊川が原因だという声がもっぱらです」(番組関係者)
一方、菊川の起用と同時期にあった人事異動が業界で臆測を呼んでいる。情報制作局長や情報制作センター室長、
番組のチーフプロデューサーらが軒並み交代したのだ。テレビ局では、長く続いた番組を終わらせたり、
「大物」キャスターやタレントを降板させたりする際に、局側も相応の立場の人間が異動するのが慣例とされている。
「大物の降板などと同時に異動する局もあるが、フジは必ずしもそうではない。
今度の人事異動は、小倉さんの降板をにらんだもの、という声があります」(同)
もしかして、小倉さん、最後の夏!?
▽週刊朝日
http://www.wa-dan.com/article/2012/07/post-968.php
0683デフォルトの名無しさん
2012/08/04(土) 23:09:38.61いらなくね?そんなの。。
0684デフォルトの名無しさん
2012/08/04(土) 23:15:50.910685デフォルトの名無しさん
2012/08/04(土) 23:16:13.33えっ
0686デフォルトの名無しさん
2012/08/05(日) 01:10:11.380687デフォルトの名無しさん
2012/08/05(日) 01:16:05.180688デフォルトの名無しさん
2012/08/05(日) 02:12:25.04iOSだとiOS SDK 6.0まで使えないんですね
@(YES), @(NO)なら使えるようで
あるいは
#define YES (1)
#define NO (0)
0689デフォルトの名無しさん
2012/08/05(日) 22:36:00.40{
Test *x =[Test ~~~];
}
-(void)lol
{
[x ~~~];
}
selectorを使ってlolを呼び出すとxが使えません。
どのようにしたらいいでしょうか?
0690デフォルトの名無しさん
2012/08/05(日) 22:57:14.70訳わからん。変な記号や省略使わないで普通に書いてよ。
つかなんでinitでsuper initしてないの?
0691デフォルトの名無しさん
2012/08/05(日) 23:01:40.49すみません、省略してました。
hでTest *x;を宣言してmで
-(id)init
{
x =[[Test alloc]init];
}
-(void)lol
{
[x abc];
}
@selectorを使ってlolを呼び出すとxは使えないのでしょうか?
0692デフォルトの名無しさん
2012/08/05(日) 23:04:33.91???
なんでinitでallocするの?
0693デフォルトの名無しさん
2012/08/05(日) 23:10:15.980694デフォルトの名無しさん
2012/08/05(日) 23:13:15.37省略ですreturnもです
0695デフォルトの名無しさん
2012/08/05(日) 23:17:45.81>hでTest *x;を宣言してmで
>@selectorを使ってlolを呼び出すとxは使えないのでしょうか?
どう宣言したのか
何故使えないと判断したのか
そのあたりをちゃんと書けよ
0696デフォルトの名無しさん
2012/08/05(日) 23:23:12.73のエラーでした
0697デフォルトの名無しさん
2012/08/05(日) 23:51:21.060698デフォルトの名無しさん
2012/08/05(日) 23:52:10.930699デフォルトの名無しさん
2012/08/06(月) 10:02:59.59そこに原因があることに気がつかない。
0700デフォルトの名無しさん
2012/08/06(月) 12:36:48.14夏だから
0701デフォルトの名無しさん
2012/08/06(月) 22:45:07.54IBOutlet imageview* hoge;
NSArray* array;
UIImage* img;
-------- .m --------------
array = [ [ NSArray alloc] init ];
//xmlのリストを取り込んで、配列に登録
NSBundle* bundle = [ NSBundle mainBundle ];
NSString* path = [ bundle pathForResource:@"omake" ofType:@"plist" ];
array = [ NSArray arrayWithContentsOfFile: path ];
// indexを指定してobjectを読み出し
for (int i = 0 ; i < 5 ; i++ ) {
NSString *str = [array objectAtIndex:i];
NSLog(@"index = %d ; object = %@", i, str);}
中略
- (void)imagexxx{
int i = 1;
//配列からファイル名を取り出して、画像のインスタンスを生成
NSString* str = [array objectAtIndex: i ];
img = [ UIImage imageNamed: str];
//imageviewに画像を反映させる
hoge.image = img;
}
※ omake.plist には5つのpng画像を Strings Type で登録しております。
これを実行すると
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x147330'
*** Call stack at first throw:
と、エラーが出るのですが、何が問題かわかりませんでした。
NSString* str = [array objectAtIndex: i ];
この部分がダメらしいのですが、
何が間違っているのかご指導いただけませんでしょうか。
よろしくお願いいたします。
0702デフォルトの名無しさん
2012/08/06(月) 23:02:53.600703デフォルトの名無しさん
2012/08/06(月) 23:05:54.920704デフォルトの名無しさん
2012/08/06(月) 23:14:34.160705デフォルトの名無しさん
2012/08/06(月) 23:18:07.70http://anago.2ch.net/test/read.cgi/mac/1342965470/
ID:BAsdE3f70 なんだろうけど、死んでほしいようなヤツだが、
[NSCFString objectAtIndex:]: unrecognized selector...
ってメッセージ出てるんだから、array が NSString インスタンスにすでに置き換わっているんだろ
NSLog( @"%@", array );
ってしてみりゃわかることじゃん。そんなコードだけ示されてもわからんし、そんなこと自分で追っかければわかることだろう
「初心者」から逃げてきたようなのできつめに言ってみたw
0706デフォルトの名無しさん
2012/08/06(月) 23:19:11.64って言いながらなんにも答えていないってのがわからないんだからしょうがないなw
0707デフォルトの名無しさん
2012/08/06(月) 23:23:56.86書かれていない部分が間違ってるとしか思えん
そんな部分に対してここが間違ってるよなんて、それこそエスパーじゃないと無理
0708デフォルトの名無しさん
2012/08/06(月) 23:26:19.61同じ事言っているよーな
0709デフォルトの名無しさん
2012/08/06(月) 23:49:58.290710デフォルトの名無しさん
2012/08/06(月) 23:52:05.79Run xxx
Diagnostics
Enable Zombie Objects
0711デフォルトの名無しさん
2012/08/06(月) 23:55:55.310712デフォルトの名無しさん
2012/08/07(火) 00:01:33.04だと、static analyzer でも出ないようだけど。もちろんコンパイルのワーニングも
>>701 だとやりそうだけどw
0713デフォルトの名無しさん
2012/08/07(火) 00:11:07.52早く死ねばいいのに。
0714デフォルトの名無しさん
2012/08/07(火) 00:13:56.690715デフォルトの名無しさん
2012/08/07(火) 00:17:12.560716デフォルトの名無しさん
2012/08/07(火) 00:22:31.190717デフォルトの名無しさん
2012/08/07(火) 00:25:56.11すごいエスパー力だなw
>>702,705,706,708,712
だったんだけどな。スッキリしたか?まあお前が必死と思うなら必死でいいけど
すごいエスパー力なのはわかったから、もう出てこなくていいよw
0718デフォルトの名無しさん
2012/08/07(火) 01:10:17.690719デフォルトの名無しさん
2012/08/07(火) 01:35:02.41ワロタw
自己申告は偉いけど必死すぎだろw
0720デフォルトの名無しさん
2012/08/07(火) 02:05:15.54こんなんで必死ってお前のその範囲ってえらいちっちゃいなあ
「偉い」とか言っちゃうんだからマジでちっちゃいんだろうなあw
0721デフォルトの名無しさん
2012/08/07(火) 02:15:09.750722デフォルトの名無しさん
2012/08/07(火) 03:25:55.140723デフォルトの名無しさん
2012/08/07(火) 03:41:41.69やっぱ夏だからか
0724デフォルトの名無しさん
2012/08/07(火) 04:05:16.050725デフォルトの名無しさん
2012/08/07(火) 08:11:25.820726デフォルトの名無しさん
2012/08/07(火) 09:08:07.32釣られてるやつ多すぎw
しかも回答できないというww
0727デフォルトの名無しさん
2012/08/07(火) 09:42:59.780728デフォルトの名無しさん
2012/08/07(火) 11:42:47.57暇だからw暇だからちょっと相手してやるってぐらいだけどな
難癖つけたがりは過疎っている所に出やすいよなあ。そういうのでも小心者ってはっきりわかるんだけど
0729デフォルトの名無しさん
2012/08/07(火) 12:27:13.020730デフォルトの名無しさん
2012/08/07(火) 12:55:59.550731デフォルトの名無しさん
2012/08/08(水) 10:58:27.51NSArrayをretainすべし
0732デフォルトの名無しさん
2012/08/08(水) 18:38:10.65現在、iPhoneのアプリを作成中です。
同じような処理をほぼ同時に(少し時間差をつけて)3つに分けて処理させてようと思っています
処理の過程で他のクラスで「3つの内のどの処理を行うか」という判断のフラグ処理で悩んでいます
スマートなプログラム書きたいんですがフラグの参照方法がこれぐらいしか思いつきません。
・グローバル変数に設定する
・引数で渡していく
isRecordingのように何かの状態を見て判断させる手もありますが、状態変化で判断する所もなさそうです
他のクラスの中でデータの削除->保存->参照というのをやっていくのでどうしても
「3つの内のどの処理を行うか」という判断が必要になります
なにかいい方法があれば教えてくださいm(__)m
0733デフォルトの名無しさん
2012/08/08(水) 18:39:43.150734732
2012/08/08(水) 18:44:41.33> 同じようなデータをほぼ同時に(少し時間差をつけて)3つに分けて処理させてようと思っています
> 他のクラスの中でデータの削除->保存->参照というのをやっていくのでどうしても
3つのデータを「他のクラスの中でデータの保存->参照->削除」するためのフラグ処理です
説明がわかりにくくてすいません。。。
0735デフォルトの名無しさん
2012/08/08(水) 18:59:03.300736732
2012/08/08(水) 19:01:36.81レスありがとうございます。
LEDをフラグ代わりというのはどういうことでしょうか???
フラッシュをピカピカ光らせるということですか???(^^;;
0737デフォルトの名無しさん
2012/08/08(水) 19:04:06.940738デフォルトの名無しさん
2012/08/08(水) 19:11:04.35> 説明がわかりにくくてすいません。。。
謝るまえに、もっと分かり易く説明してくれ。
何をしようとしているのか、いまいちよく分からないぞ。
で、これってマルチスレッドな話なのか?
スレッド1: 保存処理 -> 参照 -> 削除処理
スレッド2: 保存処理 -> 参照 -> 削除処理
スレッド2: 保存処理 -> 参照 -> 削除処理
こんな感じ?
それで、話に出て来る「他のクラス」って、いったいなんなの?
それから、ここでいう「データ」って何?
0739732
2012/08/08(水) 19:23:12.62一応ググったんですが普通にフラッシュの光らせ方しか出てこなかったもんで・・・
ソースコードも見てみましたけど、フラグに使えるんでしょうか?
>>738
ご指摘の通りマルチスレッドを使った1->2->3という処理です
「他のクラス」はマルチスレッドをスタートさせるところ以外のクラスです
「データ」は画像データです
0740デフォルトの名無しさん
2012/08/08(水) 19:34:55.82じゃあ、処理を3つに分けることと、フラグとの関係は?
@implementation OtherClass
- (void)threadProcess:(NSImage*)image
{
[self save:image];
[self reference:image];
[self delete:image];
}
@end
これじゃ、ダメなの?
0741732
2012/08/08(水) 19:40:47.99まぁ、それが引数で値を渡すっていう形になりますよね。
その先で色々と処理をしてて、ずっとその引数を渡していくというのが
ちょっとややこしいもんで・・・。
0742デフォルトの名無しさん
2012/08/08(水) 19:49:47.65別にインスタンス変数にしてもいいんだけど?
@intefface OtherClass : NSObject
@property(readwrite, strong) NSImage* image;
@end
@implementation OtherClass
- (id)initWithImage:(NSImage*)image
{
self = [super init];
if (self) {
_image = image;
}
return self;
}
- (void)threadProcess
{
[self save];
[self reference];
[self delete];
}
@end
0743デフォルトの名無しさん
2012/08/08(水) 19:57:55.73objc_setAssociatedObject しても良いよ
0744732
2012/08/08(水) 19:58:11.73続けてレスありがとうございます。
それがグローバル変数的なあつかいになるかと・・・
すいません、なんかケチをつけてるみたいで><
どうしてもその2つ以外の方法がないかと悩んでたので・・・
0745732
2012/08/08(水) 20:02:50.35objc_setAssociatedObject!これは使えそうです!
まだ軽くしか見てないんですが、最初にひもづけておけば後でもひもづいてる内容が
わかるということでしょうか?
0746デフォルトの名無しさん
2012/08/08(水) 20:06:55.18おまえの頭の中では、インスタンス変数 == グローバル変数なのかよ
「スマートなプログラム書きたいんです」とか言っているが、そもそも「スマート」の定義って何よ?
まあ、初心者が言う「スマートなプログラム書きたいんです」っていうのは、
「楽がしたい」「難しいことは考えたくない」「面倒はいや」という意思の表れなんだろうけどな
プログラムを書くことから逃げているようでは、立派なプログラマーにはなれないぞ
0747デフォルトの名無しさん
2012/08/08(水) 20:10:42.34おいおい、なんでインスタンス変数がダメで、AssociatedObjectがOKなんだよ
AssociatedObjectは、既存のオブジェクトにインスタンス変数を追加する用途で使うんだぞ
0748デフォルトの名無しさん
2012/08/08(水) 20:13:24.78そのクラスの全てにおいて必ずしも利用されない変数だからじゃね?
0749732
2012/08/08(水) 20:17:08.66グローバル変数というのは書き方が悪かったですが、ただでさえインスタンス変数が
多くなってきてるのに思いつくままに増やしたくはなかったもんで。
まぁ、それが「楽がしたい」「面倒はいや」ということですかね。。。
0750デフォルトの名無しさん
2012/08/08(水) 20:48:35.81あるクラスにインスタンス変数が多くなり過ぎるのは、クラスの設計が悪い。
一つのクラスに多くの仕事をさせすぎている証拠だ。
そのクラスを役割ごとに分割して整理しろ
結局のところ、その「インスタンス変数がダメ」とかいう話も、
そのクラスに定義されているインスタンス変数の数が少なければ問題なかった、ということなんだろ?
0751732
2012/08/08(水) 20:53:52.85なるほどですねー。確かにその通りです。
どこでクラスを分ければいいかわからないまま書いていって肥大化してました
インスタンス変数を減らすとか小手先でなんとかしようとしてました
まずはクラスの設計から見直してみます。
色々アドバイスありがとうございますm(__)m
ところでLEDをフラグ代わりにするというのは何だったんでしょうか・・・
0752デフォルトの名無しさん
2012/08/08(水) 20:59:23.510754デフォルトの名無しさん
2012/08/09(木) 17:31:23.08と失敗を呼出し後すぐに判別する方法を教えてください。
detachNewThreadSelectorは戻り値がvoidなので、それ自体が成功なのか失敗
なのかが分からなくて。
0755デフォルトの名無しさん
2012/08/09(木) 17:35:25.590756デフォルトの名無しさん
2012/08/09(木) 17:47:09.770757デフォルトの名無しさん
2012/08/09(木) 18:43:10.66ありがとうございます。他にスレッドを使用する方法があったなんて!
NSInvocationOperationとNSOperationQueueで実装しました。
NSInvocationOperation initWithTargetからnil以外が返ってきたら、
NSOperationQueue addOperationすればスレッドの起動が失敗することは
ないと考えてよいですか?
因みに、オワコンの意味を調べたのは内緒です。
0758デフォルトの名無しさん
2012/08/09(木) 18:54:55.520759デフォルトの名無しさん
2012/08/09(木) 20:56:50.87> NSOperationQueue addOperationすればスレッドの起動が失敗することは
> ないと考えてよいですか?
NSOperationQueueは、スレッドと1対1で対応している訳ではないので、それは不明。
あと、あるスレッドでエラーが発生すると、スレッドが落ちることもある。
つまり、スレッドが起動成功しても直後にエラー落ちする可能性もある。
根本的に別の手段を考えた方がいいのでは?
0760デフォルトの名無しさん
2012/08/09(木) 21:40:43.07NSOperationQueue は同時に起動するスレッド(NSOperation)数はコア数に制限されているから、
スレッドの起動に失敗するということは全くといっていいほど考えられないのじゃないかなあ
0761デフォルトの名無しさん
2012/08/09(木) 22:19:02.63ん?
スレッド数に制限があることと、スレッドの起動に失敗しないこととの間に、いったいどんな関係が?
0762デフォルトの名無しさん
2012/08/09(木) 22:21:17.62スレッドの起動に失敗するのって逆にどういうの?リソースが足りないぐらいしか思いつかないんだけど
0763デフォルトの名無しさん
2012/08/09(木) 22:45:31.67> リソースが足りないぐらいしか思いつかないんだけど
リソースってようするにメモリのことだろ?
極端な話、CPUが2コアなので2スレッド生成しようとしたが、
ある一つのスレッドで大量のメモリを消費していたため、2スレッド目の生成に失敗した。
なんてこともあるわけだ。
スレッド数とリソース消費量との因果関係は、ほとんど説明できないんじゃないか?
あと、スレッドの起動に失敗するケースといえば、例えばスレッド起動ための引数に誤りがあった場合とか。
0764デフォルトの名無しさん
2012/08/09(木) 22:50:28.36う〜む、想定ではそうなりえるだろうけど、そんなプログラム書かないでしょ?あなたも
数スレッドも起動できないような状態でどうするの??メモリいっぱい喰うようなのが失敗したら、そりゃ失敗の対策を考えるけど、スレッドを起動すらできない状態でアプリ続けられるの?ていう。まあ繰り返すけどそんなプログラムなんて書かないけどw
>スレッド起動ための引数に誤りがあった
ええーっ。バグじゃないの?
0765デフォルトの名無しさん
2012/08/09(木) 23:02:48.87>スレッド数とリソース消費量との因果関係は、ほとんど説明できないんじゃないか
よくわからないけど、NSThreadは無制限にリソースの許す限りスレッドを起動できるよ。そういう意味で大きな違いがNSOperationQueueとはある
リソースって単にアロケーションするメモリだけじゃなくて、OS側の管理テーブルとかね
0766デフォルトの名無しさん
2012/08/09(木) 23:18:27.10別に極端にメモリを消費するプログラムを作るとか言う話をしている訳ではない。
スレッド数の制限と、スレッドの起動失敗は、無関係であることを説明しているだけだ。
765も言っているが、おそらくスレッドは無制限に生成できて、失敗はほぼないのだろう。
だから、スレッド数を制限したから起動に失敗しないとかいう話にはならない。
0767デフォルトの名無しさん
2012/08/09(木) 23:24:11.21すまん。764も765も俺
NSThreadは無制限にリソースの許す限りスレッドを起動できるので、いつか失敗する可能性はアリアリ
NSOperationQueueはコア数に制限されるのでアプリがまともの実行可能な環境であれば、失敗することは無いだろ
ってこと
まあ、全く咬み合わないので、おしまいにしよう
0768デフォルトの名無しさん
2012/08/09(木) 23:45:31.85シングルコアのiPhone 4で1000個とか普通に動くぜ
0769デフォルトの名無しさん
2012/08/09(木) 23:52:51.65unsigned long count = CFGetRetainCount((CFStringRef)str);
NSLog("str: %ld",count);
---
-> str: 2147483647
どゆことー?
0770デフォルトの名無しさん
2012/08/09(木) 23:58:43.03なぜ、話が噛み合ないのかが分かった。
プロセスの起動直後は、メインスレッド1つしかない。
NSOperationQueueを使用した時点で、コア数分のスレッドが生成される。
おまえは、このときNSOperationQueueが行うスレッドの生成処理が絶対に失敗しないことを前提に、
addOperationは失敗しないと言い張っていたんだろ?
0771デフォルトの名無しさん
2012/08/10(金) 00:03:41.30定数文字列は最初からテーブルに保存されてて、release されることはないと云うこと。
0772デフォルトの名無しさん
2012/08/10(金) 00:15:06.96オブジェクトの配列をキー配列の順序でソートしたく、下のように書いたのですが
indexOfObject:のたびに線形探索されていると思うとなんか上手くないなぁと思ってしまいます
もっと上手いやり方があるでしょうか?
NSArray *targetArray = @[ @{ @"object" : @"a", @"key" : @"c" }, @{ @"object" : @"b", @"key" : @"a" }, @{ @"object" : @"c", @"key" : @"b" }, @{ @"object" : @"d", @"key" : @"e" }, @{ @"object" : @"e", @"key" : @"d" }, ];
NSArray *keyArray = @[ @"a", @"b", @"c", @"d", @"e" ];
[targetArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%@ => %@", [obj objectForKey:@"key"], [obj objectForKey:@"object"]);
}];
NSArray *sortedArray = [targetArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSUInteger index1 = [keyArray indexOfObject:[obj1 objectForKey:@"key"]];
NSUInteger index2 = [keyArray indexOfObject:[obj2 objectForKey:@"key"]];
return [@(index1) compare:@(index2)];
}];
[sortedArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%@ => %@", [obj objectForKey:@"key"], [obj objectForKey:@"object"]);
}];
0773デフォルトの名無しさん
2012/08/10(金) 00:29:48.78keyArrayを
NSDictionary* keyMap = @{@"a":@0, @"b":@1, @"c":@2, @"d":@3, @e:@4];
に変換してしまうのはどう?
0774デフォルトの名無しさん
2012/08/10(金) 00:39:50.14線型探索が嫌なら、sortedArray の object/index を、NSDictionary の key/value にすればいいじゃん。
0775デフォルトの名無しさん
2012/08/10(金) 01:33:28.92- (NSArray *)sortedArrayUsingKeyPresentationBlock:(id (^)(id obj))keyPresentationBlock withKeyArray:(NSArray *)keyArray {
NSMutableDictionary *metaDictionary = [[NSMutableDictionary alloc] init];
NSMutableArray *resultArray = [[NSMutableArray alloc] init];
NSUInteger __block cachedMark = 0;
NSUInteger count = [self count];
[keyArray enumerateObjectsUsingBlock:^(id key, NSUInteger idx, BOOL *stop) {
id obj = [metaDictionary objectForKey:key];
if (obj == nil) {
for (; cachedMark<count && obj==nil; cachedMark++) {
id aObj = [self objectAtIndex:cachedMark];
id aKey = keyPresentationBlock(aObj);
[metaDictionary setObject:aObj forKey:aKey];
if ([aKey isEqual:key]) {
obj = aObj;
}
}
}
if (obj != nil) {
[resultArray addObject:obj];
}
}];
return [resultArray copy];
}
デジタルソートなので多分速いはず・・・
0776デフォルトの名無しさん
2012/08/10(金) 07:35:36.88Constant CFStringはコンパイル時に直接オブジェクトの構造を展開する。
これに対するretain/release等はNOP、retain countにも意味は無い。
>>771
それは10年前の話。
0777デフォルトの名無しさん
2012/08/10(金) 10:00:28.27スレッド起動に関する議論、参考になります。
スレッドが動き出せたのかどうかを知るのって、重要だとおもうんですよ。
議論を読んでいると、NSOperationQueueですら確実に実行できているとは
限らないと読めるんですが、皆さんがスレッド使うプログラムを作るとき
は、結局どう判定してるの?動くこと前提にしちゃうんでしょうか。
>>759
>根本的に別の手段を考えた方がいいのでは?
ということで、オワコンと言われているNSThreadに戻ってきました。
NSThread initWithTargetで、nil以外が受け取れたならばスレッドは起動
出来ると判断して、NSThread startを呼ぶようにしました。
こんな感じですが、どうでしょうか。
NSThread* th = nil;
th = [[NSThread alloc]initWithTarget:self selector:@selector(threadFunc) object:nil];
if(th)
[th start];
else
return false; // エラー
0778デフォルトの名無しさん
2012/08/10(金) 10:12:19.01さすがにそこまでヘボいAPIじゃねーだろ。
0779デフォルトの名無しさん
2012/08/10(金) 10:19:07.17考えすぎじゃね・・・?
ポストに入れた郵便物がたまたまポスト内でどこかに引っかかって配達員に回収されず届かないのを心配するようなものだと思う。
0780デフォルトの名無しさん
2012/08/10(金) 10:36:24.07NSOperationQueueにしてもGCDにしてもthread poolに要求投げる処理方式だから
threadの生成タイミングと処理要求タイミングは直接関係無いよ。
そんなにthreadが起こせたか気になるならpthreads使って自分でthread作れば良い。
0781デフォルトの名無しさん
2012/08/10(金) 10:38:55.89起動元ではそれを時間制限付きで待機。1時間してsignalされなければ谷へ帰りなさい!
0782デフォルトの名無しさん
2012/08/10(金) 12:54:01.77781の方法も参考に、やってみます。
ありがとうございました!
0783デフォルトの名無しさん
2012/08/10(金) 21:16:13.01そのコードはちょっと違うだろ。
それだと、単純にinit...メソッドの引数に誤りがあった、という話になる。
チェックしたいのは本当にそこなのか?
NSThread* th = nil;
th = [[NSThread alloc]initWithTarget:self selector:@selector(threadFunc) object:nil];
[th start];
if ([th isExecuting]) {
// たぶん起動成功
}
else {
// たぶん起動失敗
}
あえてやるなら、こうじゃないのか?
で、結局のところいったい何を問題にしてるんだ?
1. スレッドは正常に処理を完了した。
2. スレッドは起動できなかった。
3. スレッドは起動できたが処理を完了できなかった。
この3つのケースで処理を分けたいのか?
それとも、
1. スレッドは正常に処理を完了した。
2. スレッドは正常に処理を完了できなかった。
この2つのケースで処理を分けたいのか?
もしも、後者ならスレッドの終了を確認しなければならない。
スレッドの起動を確認しても無意味だよ。
0784デフォルトの名無しさん
2012/08/10(金) 22:13:05.48それだと、selfの中に同じキーが複数あると破綻しそうだが...
selfよりも、keyArrayの方をNSDictionaryに詰め直した方がいいんじゃないのか?
0785デフォルトの名無しさん
2012/08/13(月) 11:37:54.98ありがとうございます。
確認したいのは、スレッドが正常に処理を開始した。です。
スレッドの処理が正常終了なのかエラー終了なのかは、インスタンス変数
的なもので確認するので気にしていません。
今回作るスレッドは、同時に1つだけで、親スレッドは中止ボタンのクリッ
クなどを受け持つようにしています。
教えていただいた、isExecutingでも判定するようにしてみます!
0786デフォルトの名無しさん
2012/08/13(月) 20:52:37.75もしかして、スレッドの開始を確認したいっていうのは、
その「中止ボタン(NSButton)」のenableとdisableを切り替えたいから、とか?
0787デフォルトの名無しさん
2012/08/14(火) 08:59:59.68そんな感じです。
実行開始できてないのに、「中止」ボタンが押せるのも変なので。
サブスレッド側で切り替えるようにすればいいだけかもしれませんが。
昨日、サブスレッドでUIをいじるためのdispatch_syncを学習しました。
0788デフォルトの名無しさん
2012/08/14(火) 12:30:08.42サブスレッドから単純にUIを操作すると例外が発生するので、メインスレッド
にUI処理を委譲させるようにするために、dispatch_syncを使用する方法を
学習しました、です。
0789デフォルトの名無しさん
2012/08/21(火) 08:23:48.95配列に画像を読み込ませて、それをランダムに一枚ずつ画面に表示させ、
フリックすると画像が切り替わるプログラムを作りたいんですが、どんなふうに書けばいいですかね・・・
allImage = [[CCArray alloc] initWithNSArray:
[[[NSArray alloc] initWithObjects:
...,nil] autorelease]];
ImageRandomIndex = arc4random() % [allImage count];
NSString *flick = [allImage objectAtIndex:ImageRandomIndex];
flickImage = [CCSprite spriteWithFile:@"%@",flick];
こんな感じで実行してみましたが[Too many arguments to method call,expected 1, have 2]とエラーがでます・・・
0790デフォルトの名無しさん
2012/08/21(火) 08:52:14.97> @"%@",flick
ふざけてんの?
0791デフォルトの名無しさん
2012/08/21(火) 08:53:10.910792デフォルトの名無しさん
2012/08/21(火) 14:07:44.98引数が多いぞボケって言われてるんだよ
0793デフォルトの名無しさん
2012/08/21(火) 14:30:12.65「〜のiPhone」というのが出てきて選択できたんだが、
それが「iOS Device」となってしまって、実機でデバッグができない。
iPhoneをiOS4からiOS5にバージョンアップしたことが原因かもしれないが、
なんか解決方法ない?
0794デフォルトの名無しさん
2012/08/21(火) 14:41:06.560795デフォルトの名無しさん
2012/08/21(火) 14:56:32.58あとスレチ
0796デフォルトの名無しさん
2012/08/22(水) 19:43:33.130797デフォルトの名無しさん
2012/08/23(木) 12:26:53.18なぜリークになってしまうのでしょうか?どなたかヒントいただけませんか?
Xcode Version4.3.3 Instruments version 4.3
-(NSString*)urlWithUrl:(NSString*)urlString
{
NSArray* urlComponents = [urlString pathComponents];
NSString* resultUrlString = [NSString stringWithFormat:@"%@//%@/%@/",
[urlComponents objectAtIndex:0],
[urlComponents objectAtIndex:1],
[urlComponents objectAtIndex:3]
];
return resultUrlString;
}
0798デフォルトの名無しさん
2012/08/23(木) 21:07:02.77インデックス範囲外なら出そうな雰囲気だが
0799デフォルトの名無しさん
2012/08/23(木) 21:14:18.22Analyze はやった?
0800デフォルトの名無しさん
2012/08/23(木) 23:14:23.13そこで生成された後にどう触ってるかも含めて見て行かないと
どこでリークしてるかなんてわからないと思う
リファレンスカウントの履歴をちゃんと調べなさい
0801デフォルトの名無しさん
2012/08/25(土) 13:09:02.30http://www.swarm.org/index.php/Swarm:_software_main_page
0802デフォルトの名無しさん
2012/08/26(日) 18:38:47.400803デフォルトの名無しさん
2012/08/26(日) 18:50:16.76Ubuntu Swarm
なり
GNUstep Swarm
でググれば答えらしきものはあるけど。どれだけどこまで自分でやったの?
0804デフォルトの名無しさん
2012/09/03(月) 16:29:55.02どうしてですか?
0805デフォルトの名無しさん
2012/09/03(月) 16:57:32.710806デフォルトの名無しさん
2012/09/03(月) 17:27:26.09どうして起動できないか教えて?
0807デフォルトの名無しさん
2012/09/03(月) 19:15:50.680808デフォルトの名無しさん
2012/09/03(月) 19:24:11.290809デフォルトの名無しさん
2012/09/03(月) 20:40:12.09Microsoftの人に違いない。
0810デフォルトの名無しさん
2012/09/05(水) 22:12:09.09いいかげん拡大縮小や印刷で文字の大きさ変わるバグ治してほしいわ
0811デフォルトの名無しさん
2012/09/05(水) 23:07:26.030812デフォルトの名無しさん
2012/09/06(木) 00:29:12.790813デフォルトの名無しさん
2012/09/07(金) 22:45:57.04selfじゃない同じクラスのインスタンスのreadonlyなプロパティにsynthesizeされている変数にアクセスするために->使おうと思ったんですが構造体でも共用体でもねーぞって怒られます
0814デフォルトの名無しさん
2012/09/07(金) 23:15:29.200815デフォルトの名無しさん
2012/09/07(金) 23:35:03.200816デフォルトの名無しさん
2012/09/07(金) 23:50:12.840817デフォルトの名無しさん
2012/09/07(金) 23:51:25.090818デフォルトの名無しさん
2012/09/08(土) 00:03:35.02型があってなくて文句言われてたかも知れません
(渡されるオブジェクトは同じクラスのはずだけど型が多分スーパークラスの型だったせい)
お騒がせしました
0819デフォルトの名無しさん
2012/09/08(土) 00:49:58.730820デフォルトの名無しさん
2012/09/08(土) 01:03:37.250821デフォルトの名無しさん
2012/09/09(日) 12:29:25.590822デフォルトの名無しさん
2012/09/09(日) 14:08:05.310823デフォルトの名無しさん
2012/09/10(月) 00:22:32.820824デフォルトの名無しさん
2012/09/10(月) 11:42:24.31波になってあなたへ向かってく
私の歌がデムパになって
波になってあなたへ響いてく
私の愛がデムパになって
波になってあなたへ届いてく
私の電子回路が短絡する前に
Electric LOVE Electric LOVE
(∩ ゚д゚) アーアー
この気持ちあなたに届くかな
0825デフォルトの名無しさん
2012/09/10(月) 12:37:24.17英語のリファレンス読めなきゃ日本語のリファレンス読めば良いじゃない
公式のが出てるだろ
0826デフォルトの名無しさん
2012/09/10(月) 13:08:18.500827デフォルトの名無しさん
2012/09/11(火) 00:08:41.890828デフォルトの名無しさん
2012/09/11(火) 00:55:02.04わしは手書きで書きたいんじゃ
0829デフォルトの名無しさん
2012/09/11(火) 01:09:30.240830デフォルトの名無しさん
2012/09/11(火) 01:26:16.87TOEIC520しかない俺でも、若干怪しい部分がたまにあるがだいたい訳せる
翻訳に逃げず、自らの脚で歩み始めたとき、道は拓ける
0831デフォルトの名無しさん
2012/09/11(火) 01:44:22.270832デフォルトの名無しさん
2012/09/11(火) 01:47:00.09機械翻訳なんかかけたら単語の意味おかしいgdgdの訳が出てくるだろ。
素で読んだ方が速いって。
0833デフォルトの名無しさん
2012/09/11(火) 07:22:03.000834デフォルトの名無しさん
2012/09/11(火) 07:53:08.640835デフォルトの名無しさん
2012/09/11(火) 15:29:14.260836デフォルトの名無しさん
2012/09/11(火) 17:38:53.99中高生はアプリなんか作ってる暇があったら勉強しなさい
0837デフォルトの名無しさん
2012/09/11(火) 18:44:23.31なんと30%も!と聞いたが。
0838デフォルトの名無しさん
2012/09/11(火) 18:59:05.620839デフォルトの名無しさん
2012/09/11(火) 19:23:56.63そんな所にこだわるから組めないんだよw
0840デフォルトの名無しさん
2012/09/11(火) 20:28:11.04IBを使わないことに、何かメリットがあるの?
0841デフォルトの名無しさん
2012/09/11(火) 20:30:08.07objcを使う前にcを勉強する感じ?
0842デフォルトの名無しさん
2012/09/11(火) 20:37:45.05IB使わないで書けるようになるのも速いような気がする。
それが素晴らしいかどうかは知らんけど。
0843デフォルトの名無しさん
2012/09/11(火) 21:05:48.78それは、つまり、IBは敷居が高い。ということなのか
0844デフォルトの名無しさん
2012/09/11(火) 21:26:27.100845デフォルトの名無しさん
2012/09/11(火) 21:37:04.84旧で配置したNSScrollViewは、スクロールバーを”なし”に設定しても、マジックマウスのジェスチャーでスクロールできるのだが、
[[NSScrollView alloc] initWithFrame:...]した方は、スクロールバーを”なし”にすると、マジックマウスのジェスチャーでもスクロールできない。
0846デフォルトの名無しさん
2012/09/12(水) 02:45:27.41iPhoneアプリ作りたい。
Macはある。
マウンテンライオンにエックスコードは挿れた
オススメのサイトや本を教えてください。
0847デフォルトの名無しさん
2012/09/12(水) 06:16:16.080848デフォルトの名無しさん
2012/09/12(水) 10:20:55.250849デフォルトの名無しさん
2012/09/12(水) 12:32:25.600850デフォルトの名無しさん
2012/09/12(水) 17:18:05.22ぐぐってもわからん
0851デフォルトの名無しさん
2012/09/12(水) 17:28:22.71双方から見える場所を経由する。
0852デフォルトの名無しさん
2012/09/12(水) 17:29:14.44もう一方は2chを読み込む
0853デフォルトの名無しさん
2012/09/12(水) 17:31:37.660854デフォルトの名無しさん
2012/09/12(水) 17:31:42.18一度第三のクラス経由するってこと?
0855デフォルトの名無しさん
2012/09/12(水) 17:36:27.83その場合クラスじゃなくてインスタンスな。
0856デフォルトの名無しさん
2012/09/12(水) 17:38:53.31○ インスタンス間でインスタンス変数の値を受け渡しする方法教えて下さい><
0857デフォルトの名無しさん
2012/09/12(水) 17:41:13.47オブジェクトでもメモリでもファイルでもインターネットの向こう側でも、都合の良い場所を
ていうか直接渡せばいいでしょ
0858デフォルトの名無しさん
2012/09/12(水) 17:43:26.01ありがとうございます
0859デフォルトの名無しさん
2012/09/12(水) 23:17:50.210860デフォルトの名無しさん
2012/09/13(木) 13:03:17.470861デフォルトの名無しさん
2012/09/13(木) 13:57:38.89上のコードはstringのメモリがループするごとに確保→開放されて
下のコードだと100個分のstringがfuncを抜けるタイミングで開放
されるという理解でいいんでしょうか?
- (void)func
{
for(int i = 0; i < 100; i++) {
@autoreleasepool {
NSMutableString *string = [NSMutableString string];
[string appendString:@"test"];
}
}
}
- (void)func
{
for(int i = 0; i < 100; i++) {
NSMutableString *string = [NSMutableString string];
[string appendString:@"test"];
}
}
0862デフォルトの名無しさん
2012/09/13(木) 14:15:36.91あと上はすごく無駄だと思う。
0863デフォルトの名無しさん
2012/09/13(木) 18:32:13.74意外とドキュメントが充実していたりする
0864デフォルトの名無しさん
2012/09/13(木) 20:34:56.20下のコードには、@autoreleasepoolがどこにも書いてないので、どのタイミングで解放されるかは分からない。
0865デフォルトの名無しさん
2012/09/14(金) 09:51:27.500866デフォルトの名無しさん
2012/09/14(金) 12:55:46.01わからなくはないだろう
0867デフォルトの名無しさん
2012/09/14(金) 13:19:50.800868デフォルトの名無しさん
2012/09/14(金) 14:28:32.130869デフォルトの名無しさん
2012/09/14(金) 14:46:59.230870デフォルトの名無しさん
2012/09/14(金) 15:19:07.98アプリ終了まで非使用領域に残り続けるってことで合ってる?
0871デフォルトの名無しさん
2012/09/14(金) 17:39:26.68「最も内側のautorelease poolがdrainされるタイミングで解放される」
「autorelease poolが全く存在しない場合はリークする」
ちなみにcallerとcalleeがARCでbuildされている場合には
forのスコープを抜ける毎に解放されるが、
これはコンパイラおよびランタイムによる最適化であって言語仕様ではないので、
必ずしもそうであるという保証はない。
0872デフォルトの名無しさん
2012/09/14(金) 19:37:56.38それが自分のプログラミングレベルの問題なのか英語をちゃんと読めてないのかわからないのが困る
0873デフォルトの名無しさん
2012/09/14(金) 20:02:35.950874デフォルトの名無しさん
2012/09/14(金) 20:08:55.74依る場合も多いから、実は日本語もうまく読み取れていない。
0875デフォルトの名無しさん
2012/09/14(金) 20:59:17.390876デフォルトの名無しさん
2012/09/14(金) 21:17:22.130877デフォルトの名無しさん
2012/09/14(金) 21:29:25.56と言っても後者はNSAttributdString調べてないからどっちにしろ理解出来んかもしれんけど
0878デフォルトの名無しさん
2012/09/15(土) 22:12:02.240879デフォルトの名無しさん
2012/09/15(土) 23:03:25.410880デフォルトの名無しさん
2012/09/15(土) 23:16:20.30>>877
0881デフォルトの名無しさん
2012/09/15(土) 23:23:21.750882デフォルトの名無しさん
2012/09/15(土) 23:29:14.65872から読んでくれ。てかお前らちゃんと駐在してるのな。。
0883デフォルトの名無しさん
2012/09/16(日) 00:33:25.98インスペクタでalternateTitleやらボタンタイプやら変えて動かしてみ。
ドキュメント以前の問題。
0884デフォルトの名無しさん
2012/09/16(日) 01:05:21.43ですな。。IB弄ってさっきalterateTitleは解決です(attributedTitleはまだ)。IBがGUIの教材になるのは今回いい勉強になったどす。
しかし本題の英語はさっぱりだのう。。。インスタンスの内容が大まかに分かった後でもその英文の説明文の意味はさっぱり。。。。。
ちなみにこれ↓
Sets the title that appears on the button when it’s in its alternate state.
0885デフォルトの名無しさん
2012/09/16(日) 01:22:27.850886デフォルトの名無しさん
2012/09/16(日) 09:49:26.59でエラーがでます。
対処法わかりますか?
0887デフォルトの名無しさん
2012/09/16(日) 09:56:58.110888デフォルトの名無しさん
2012/09/16(日) 13:12:42.10label.text = 変数;
こうしてるのとほぼ同じ。
0889デフォルトの名無しさん
2012/09/16(日) 16:25:54.70お前 >>789 だろ
0890デフォルトの名無しさん
2012/09/16(日) 16:46:23.300891デフォルトの名無しさん
2012/09/17(月) 00:10:39.01オモロー
0892デフォルトの名無しさん
2012/09/17(月) 18:45:10.890893デフォルトの名無しさん
2012/09/17(月) 19:27:27.050894デフォルトの名無しさん
2012/09/17(月) 19:57:00.46共用体とかあるらしいが使ったことない。
0895デフォルトの名無しさん
2012/09/17(月) 19:57:58.710896デフォルトの名無しさん
2012/09/17(月) 20:21:49.630897デフォルトの名無しさん
2012/09/17(月) 20:27:04.64多いじゃろう。iPhoneアプリを作ろうとしたプログラミング初心者はいっぱい
わしです
0898デフォルトの名無しさん
2012/09/18(火) 02:22:02.51ポインタを宣言するという概念がなくて
hoge(hage*) <-この後ろアスタリスクなんだろう?Obj-C特有の記法かな?
と思ってました…
0899デフォルトの名無しさん
2012/09/18(火) 10:56:55.87だな
C++からだったけど構文上のごく一部の非互換を調べた程度で
後は別にCのソースいじるのに支障なかった
Obj-Cに至ってはCと完全互換だしな
0900デフォルトの名無しさん
2012/09/19(水) 01:25:34.270901デフォルトの名無しさん
2012/09/19(水) 09:39:12.650902デフォルトの名無しさん
2012/09/19(水) 10:39:18.680903デフォルトの名無しさん
2012/09/19(水) 21:02:59.00複数行マクロ、カテゴリ拡張が増えて行って
他の環境で組める気がしない・・・
0904デフォルトの名無しさん
2012/09/19(水) 23:17:17.92それもいずれdeprecatedになってくんだよな
0905デフォルトの名無しさん
2012/09/26(水) 14:06:57.21クライアントの名前がiOSとかキモイんだが
0906デフォルトの名無しさん
2012/09/26(水) 15:23:27.080907デフォルトの名無しさん
2012/09/26(水) 17:30:45.02そんな細かいことをキモイと言う程デキやつなら、NSURLConnection/NSURLRequestで自分でTwitter API実装すればいいじゃん。そうであれば>>906も聞いてくれるかもねw
まあ、些細なことに拘るけどデキもしないやつなんだろうけど
0908デフォルトの名無しさん
2012/09/30(日) 10:03:33.99スレチだったらすまん
0909デフォルトの名無しさん
2012/09/30(日) 13:32:28.930910デフォルトの名無しさん
2012/10/01(月) 03:03:44.55正直萩原本のほうがいいな。タイミングのせいかARC対応してないし
iOSのほうの原著版は書き直したらしいけど
萩原本とUIKit詳解(を最新に書き直し)は
英訳したら海外でも売れそうな気がする
0911デフォルトの名無しさん
2012/10/01(月) 12:32:08.12Uikit詳解は今でも使える名本やで
0912デフォルトの名無しさん
2012/10/01(月) 15:26:48.87画像を一覧表示、選択、背景に設定ってどうすればできるんでしょう;ー;
初心者ですが簡単な手順だけでも教えていただきたいです
0913デフォルトの名無しさん
2012/10/01(月) 20:31:02.610914デフォルトの名無しさん
2012/10/02(火) 10:47:46.380915デフォルトの名無しさん
2012/10/02(火) 20:25:25.53「クラスを更に考える」(4/8)について、まるで
わかりません・・・。
@implementation SuperMyTestClass
+(MyTestClass*)superMyTestClassWithMessage:(NSString*) str
andMessage2:(NSString*) str2 {
id obj = [super myTestClassWithMessage:str];
[obj setMessage2:str2];
return obj;
}
-(void)setMessage2:(NSString*) str
{ message2 = str;
}
・・・・
このコンビニエンスコンストラクタですが、
スーパークラスとしてのコンストラクタなので、
戻り値は MyTestClass 型ではなくSuperMyTestClass型の
ではないのでしょうか?
コンストラクタ内記載のobjは、MyTestClass型なのに、
なぜ、スーパクラス側の[obj setMessage2:str2];が
動作するのでしょうか・・・?
初心者の質問でしたらすみませんが、
どなたか教えてください。
0916デフォルトの名無しさん
2012/10/02(火) 21:37:03.67書いてある返り値の型なんか関係なく、クラスAとしてalloc+initされたら、クラスBとして返されようがクラスAのオブジェクト。
Aのメソッドにはrespondするが、Bのメソッドにはrespondしないので、クラスBはクラスAのスーパークラスでなければならない。
ちなみに、返り値として返すとき、特にサブクラスでオーバーライドされる可能性のあるメソッドは、クラス名ではなくてid型を指定するのが定石。
0917デフォルトの名無しさん
2012/10/03(水) 04:25:54.66ですよ
0918デフォルトの名無しさん
2012/10/03(水) 05:28:56.59そう思って見ても、4行目
obj = [super myTestClassWithMessage:str]と、
スーパークラスのオブジェクトで作ったのに、
5行目の[obj setMessage2:str2]で、スーパクラスでない
自分のクラス側のメソッドにはrespondするのかが
まったくわからんのです・・・
0919デフォルトの名無しさん
2012/10/03(水) 05:52:20.470920デフォルトの名無しさん
2012/10/03(水) 09:12:35.77メッセージが送られる先のオブジェクト(今の場合はSuperMyTestClassクラスオブジェクト)は同じだから。
「スーパークラスのオブジェクトで作った」のではなく、スーパークラスの「メソッド実装」を自分のクラスに対して呼び出した。
0921デフォルトの名無しさん
2012/10/03(水) 12:21:59.17MyTestClass の myTestClassWithMessage で [self alloc] しているから。そこが [MyTestClass alloc] だったら、言う通り スーパークラス= MyTestClass のインスタンスにしかならないが、[self alloc] なので self=呼ばれたクラス のインスタンスになる。
@interface MyClass : NSObject
+ (void)printSelfClass;
@end
@implementatio MyClass
+ (void)printSelfClass { NSLog( @"%@", NSStringFromClass( self ) ); }
@end
@interface MySubClass : MyClass
@end
@implementatio MySubClass
+ (void)printSelfClass { [super printSelfClass] }
@end
[MyClass printSelfClass];
[MySubClass printSelfClass];
とすると、self を NSLog しているのは、MyClass でだけど、ちゃんとクラスが違うでしょ
0922デフォルトの名無しさん
2012/10/03(水) 12:30:48.24@implementatio MySubClass
+ (void)printSelfClass { [super printSelfClass] }
@end
の、
+ (void)printSelfClass { [super printSelfClass] }
が無くて直接 MyClass のを [MySubClass printSelfClass] としても同じ。たぶん
0923デフォルトの名無しさん
2012/10/03(水) 12:48:43.30こいうのがあるから、いまどきも id なんだと思うけど
MySubClass のインスタンスを MyClass の変数に格納するのはいたって普通だが、MyClass のインスタンスを MySubClass の変数に格納するのはなんだか気持ち悪いじゃんということで
まあ、どっちにしろ実質的な気持ち悪さはあんまり変わらないんだけど
0924デフォルトの名無しさん
2012/10/03(水) 19:35:21.890925デフォルトの名無しさん
2012/10/03(水) 20:05:11.490926デフォルトの名無しさん
2012/10/03(水) 22:24:40.29スクロールバーをだす機能を作りたいと考えています。
IBにてNSScrollViewを配置し、IdentityタブでScrollView内のNSViewのクラスをNSImageViewに変更し、
Outletとして登録、setImageで画像を設定するのですが何も表示されません。
Imageメソッドで取得しても(null)になっているので設定ができていないようです。
NSScrollViewではなく直接NSImageViewを配置した場合は表示できているのですが。
どう設定すれば機能を実現できるでしょうか?
0927デフォルトの名無しさん
2012/10/03(水) 23:23:29.49NSImageViewを配置した後に、メニューから「Embed in」を選ぶ。
0928デフォルトの名無しさん
2012/10/04(木) 00:24:19.76>>916
>>920
ありがとうございます。ようやく意味がわかりました。「スーパークラスのオブジェクトで作った」のではなく、スーパークラスの「メソッド実装」を自分のクラスに対して呼び出したということですね。
>>921
ありがとうございます。それで、printSelfClassでやってみると確かにそのとおり。検証できました。
>>924
本当はMyTestClassのサブクラスなのに、SuperMyTestClassという名前が付いてるので自分もまったく混乱しました。
結局自分としてあるべきコードは、以下だと思うのですが、★の行にてエラーが出てしまい、(MyTestSubClass* )のキャストが要るようなのですが、スーパークラスの「メソッド実装」を自分のクラスに対して呼び出したという観点からすると、いまいち理由がわかりません・・・。
"Incompatible pointer types initializzing 'MyTestSubClass' with an expression of type 'MyTestClass'"
--8<-----8<-----8<-----8<-----8<-----8<---
@implementation MyTestSubClass
+(MyTestSubClass*)myTestSubClassWithMessage:(NSString*) str
andMessage2:(NSString*) str2 {
MyTestSubClass* obj = [super myTestClassWithMessage:str]; //★
[obj setMessage2:str2];
return obj;
}
-(NSString*)message2 {
return message2;
}
・・・・
--8<-----8<-----8<-----8<-----8<-----8<---
0929デフォルトの名無しさん
2012/10/04(木) 00:45:43.950930デフォルトの名無しさん
2012/10/04(木) 00:51:44.53これならエラー出ないんじゃね?
id obj = [super myTestClassWithMessage:str];
[(MyTestSubClass* )obj setMessage2:str2];
0931デフォルトの名無しさん
2012/10/04(木) 01:14:52.62サブクラスの型 の変数を 親クラスの型 の変数に入れるのは、サブクラスは親クラスを全て内包しているので問題無い
親クラスの型 の変数を サブクラスの型 の変数に入れるのは、親クラスはサブクラスで追加されたものが入っていないのでいいのかわるいのかはわからない
コンパイラは間違っているんじゃネーのってことでエラーにする。コンパイラがわかるのは変数の型であって、その内容(インスタンス)がサブクラスなのかなんなのかわからないので
キャストするのはプログラマの責任で、id とするのは「なんだかわからないよ」という意味もある。どういうサブクラスが追加されるかわからないから
0932デフォルトの名無しさん
2012/10/04(木) 06:15:29.23>>920 >>921 によるとコンパイラ君は、[super ・・・]によるコンビニエンスコンストラスタは
きちんとスーパクラスではなく自分のクラスの呼び出しとわかっているはずだな、とおもうので
やっぱりエラー(実際はワーニング)はげせないですね。
>>928
もともとの記事にある方法と同じで、これだと (MyTestSubClass* ) キャストすら
要らないで動きます。
0933デフォルトの名無しさん
2012/10/04(木) 09:54:01.40+(MyTestClass*)myTestClassWithMessage:(NSString*)str;
とある以上、コンパイラにはMyTestClassクラスのオブジェクトを返す(つもりである)ことしかわからない。
0934デフォルトの名無しさん
2012/10/04(木) 10:35:55.09親クラスの実装部は何を返すかわからないというのは上で説明されている通り
「[super ・・・]によるコンビニエンスコンストラスタはきちんとスーパクラスではなく自分のクラスの呼び出しとわかっている」から自分のクラスのインスタンスを返すハズというのは言語仕様外の決まり事でしかなく、>>933の言う通りにしかならない
0935デフォルトの名無しさん
2012/10/04(木) 21:17:25.19これだとTabキーにも反応してしまいます。
Enterキーのみで処理させるにはどうすればいいでしょうか?
0936デフォルトの名無しさん
2012/10/04(木) 21:56:52.94そのTexitField内でのEnterだけで何かしたいなら、サブクラスの
- (BOOL)performKeyEquivalent:(NSEvent *)theEvent
0937デフォルトの名無しさん
2012/10/04(木) 22:08:54.45>>933 >>934
よくわかりました。ありがとうございました。
0939デフォルトの名無しさん
2012/10/05(金) 00:08:32.38IBのNSTextFieldの属性で、Actionを「Send On Enter Only」に設定するのはどうだ?
0940デフォルトの名無しさん
2012/10/05(金) 04:15:22.970941935
2012/10/05(金) 22:45:18.10気づかなかった・・・それもシンプルでいいですね!
もう一つ質問させてください。
NSStepperを使いたいと考えているのですがステッパーにて値を変更したことを検知して
処理を走らせたいと思うのですが、どうすれば検知できるでしょうか?
0942デフォルトの名無しさん
2012/10/05(金) 23:14:12.000943デフォルトの名無しさん
2012/10/18(木) 00:26:33.43UILabelを動的にリサイズする方法が分かりません。
storyboard画面で、UITableViewのPrototype Cells(UITableViewCell)にLabelを貼っつけてます。
Prototype Cellsのheightは44、Labelのheightは43に設定してます。
Labelにセットする文字列がはみ出る場合があるので、文字列の長さによってheightを可変にします。
ttp://blog.syuhari.jp/archives/2097
ttp://akabeko.me/blog/category/programing/ios/page/2/
を参考にして
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
のメソッド内でCellのheightは変えられるのは分かったんですが、Labelのheightはどこで変更すれば良いのかが分かりません。
ヘッダファイルに
IBOutlet UILabel *label;
としておいて、上記のメソッド内で
label.frame.size.height = ○○;
などとやってみたんですが、画面に表示するとデフォルトの43に戻ってしまいます。
何処が間違ってるでしょうか?よろしくお願いします。
0944デフォルトの名無しさん
2012/10/18(木) 01:02:55.67ViewDidLoadでやりなさい
というかframeごと設定してやらないといけないから
CGRect frame = label.frame;
frame.size.height = xxx;
label.frame = frame;
とかやらないとダメだと思うが
0945デフォルトの名無しさん
2012/10/18(木) 01:06:15.56あ、テーブル内か。ViewDidLoadは無視してくれ
cellForRowAtIndexPathかな
0946デフォルトの名無しさん
2012/10/18(木) 01:37:37.63おおお、cellForRowAtIndexPath内で>>944をやってみたら上手く行きました!
やっと先に進める…
ありがとうございました。
0947デフォルトの名無しさん
2012/10/18(木) 19:12:11.860948デフォルトの名無しさん
2012/10/19(金) 14:40:33.900949デフォルトの名無しさん
2012/10/20(土) 02:59:04.26NSString *str = [[NSString alloc] initWithData:data encoding:NSShiftJISStringEncoding];
↑で、dataの中に変な機種依存文字が1文字でも入ってると、
2行目のinitWithData:encoding:でエンコーディングに失敗してstrが空っぽで帰ってきてしまいますよね ?←こういうの
エンコード出来ない文字だけを事前に除外して、それからエンコードする方法って何かありませんかね
0950デフォルトの名無しさん
2012/10/20(土) 03:32:24.912chブラウザ作る気?
まぁ、簡単なのは、改行コードのバイト列で事前に区切ってしまえば、空っぽになる範囲を最大で1行分(1レス分)に抑えることができる
もしくは自力で、機種依存文字とか無視して強制変換するコードを書くしかあるまい
0951デフォルトの名無しさん
2012/10/20(土) 12:29:03.26iconv使え
あと、たぶんShiftJISじゃなくてCP932じゃね?
0952デフォルトの名無しさん
2012/10/20(土) 12:35:37.670953デフォルトの名無しさん
2012/10/20(土) 12:53:52.000954デフォルトの名無しさん
2012/10/20(土) 13:44:43.97iOSだとiconv無理だったと思う
0955デフォルトの名無しさん
2012/10/20(土) 14:32:00.940956デフォルトの名無しさん
2012/10/20(土) 14:33:49.37>>950
そのとおりです
勉強がてらtwitterか2chのビューワーを作ってみようかとw
>>951
ありがとうございます、iconvで正常にNSDataからNSStringに変換出来ました
>>954
libiconv.2.4.0.dylibを参照して-liconv.2を追加したらiPhone実機で動きましたよ
0957デフォルトの名無しさん
2012/10/22(月) 21:04:50.380958デフォルトの名無しさん
2012/10/22(月) 22:58:42.33今時publicなんか使う?
今はpropertyでauto synthesize。
self使えない/使いたくないところは_前置で。
0959デフォルトの名無しさん
2012/10/22(月) 23:29:23.520960デフォルトの名無しさん
2012/10/23(火) 00:48:56.860961デフォルトの名無しさん
2012/10/23(火) 02:06:01.150962デフォルトの名無しさん
2012/10/23(火) 10:25:07.28ありがとう。
ARCを信じることにします。
0963デフォルトの名無しさん
2012/10/23(火) 10:39:25.28Xcodeのナビゲータでアセンブルコードは見れるよ
0964デフォルトの名無しさん
2012/10/23(火) 18:37:01.34いったい何を問題にしているのかよく分からん。
適当なコードを提示して説明してくれ。
0965デフォルトの名無しさん
2012/10/23(火) 19:56:14.26この動画の9秒目の、横にシュッとやると下からメニューが出てくるヤツを真似したいんだけど上手く行かない
新しいようつべアプリでも同じ様なのあるけど、これってどうやってるんですかね?
1.一番下にメニュー画面(テーブルビュー)を置いておく
2.幅2画面弱(520px)の透明のスクロールビューを用意する
[scrollView setContentSize:CGSizeMake(520, self.bounds.size.height)];
[scrollView setBackgroundColor:[UIColor clearColor]];
3.スクロールビューのCGPoint(200,0)をデフォルト位置にする
[scrollView setContentOffset:CGPointMake(200, 0)];
4.スクロールビューのPagingEnabledをYESにする
5.4のデフォルト位置にメイン画面(UIViewとか)をAddする
UIView* mainView = [[UIView alloc] initWithFrame:self.bounds];
[mainView setCenter:CGPointMake(self.center.x + 200, self.center.y)];
[scrollView addSubview:mainView];
6.2〜5で作ったスクロールビューを1のメニュー画面の上に重ねる
7.スクロールビューを右にむかってシュッとやると200px分移動して、下からメニュー画面が出てくる
8.んだけど、スクロールビューの透明な部分が邪魔で下のメニュー画面が押せない…
0966デフォルトの名無しさん
2012/10/23(火) 20:08:11.70http://anago.2ch.net/test/read.cgi/mac/1350384879/
こちらでどうぞ
0967デフォルトの名無しさん
2012/10/23(火) 20:10:50.410968デフォルトの名無しさん
2012/10/23(火) 20:27:59.54すみません、次回からそっちで聞きます
0969デフォルトの名無しさん
2012/10/24(水) 19:41:59.93何も問題はないですねん。キレイなコード書きたかったのの相談でしたですねん
0970デフォルトの名無しさん
2012/10/26(金) 23:17:21.14リンクエラーになってしまいます。
ターゲットによって#import文を分岐させることはできるのでしょうか?
0971デフォルトの名無しさん
2012/10/27(土) 00:27:17.600972デフォルトの名無しさん
2012/10/27(土) 11:36:04.36一つのソースファイルを複数のターゲットで共有したいなら、そのソースファイルを複数のターゲットに含めるだけだよ
0973デフォルトの名無しさん
2012/10/27(土) 19:22:31.92俺はそういう場合、シングルトンのクラスを用意してデータの管理している。
引数やらプロパティで引き継ぐとまじースパゲッティになる。
0974デフォルトの名無しさん
2012/10/29(月) 03:52:55.99それはなんか違うような・・
綺麗なコントローラー間の値の受け渡しなどグループ引数的なものはダラダラと記述しないで id 1つ。
coredata使う時のsegueのdetailItem的な感覚が参考になるかな。
idの正体はNSArray*、生成は@[]で、
0975デフォルトの名無しさん
2012/10/29(月) 09:59:03.75nextViewController.delegate = self.delegate;
みたいにいちいちリレーするとスパゲッティになるから、
データ管理用のシングルトン型モデルコントローラを作った方が遷移時にdelegateを引き継がなくて良くてすっきりするよねって話じゃないの?
0976デフォルトの名無しさん
2012/10/29(月) 21:32:28.740977デフォルトの名無しさん
2012/10/30(火) 05:41:32.47サンプルアプリでも使ってるの見たことない
つまりシングルトンなんかでグローバル変数はダメダメ設計って事さ
0978デフォルトの名無しさん
2012/10/30(火) 06:46:39.020979デフォルトの名無しさん
2012/10/30(火) 14:05:42.14OOP?
0980デフォルトの名無しさん
2012/10/30(火) 14:16:11.45アプリケーション内のあちこちで共有されるモデルを、モデルコントローラで統一管理して何がいけないのか
OOPからも逸脱してないと思うけど
0981デフォルトの名無しさん
2012/10/30(火) 20:25:08.99アプリでシングルトンクラスが必要なのは、天下の裏金マンセーIBMが受注する、6000万円クラスのWEBシステムぐらいだ!それを人はアプリと呼ばないがなwwww
そしてIBMはスルガ銀行の時みたいに失敗して損害賠償裁判に負けるのさwwww
0982デフォルトの名無しさん
2012/10/30(火) 21:31:37.96楽しそうですね
レス数が950を超えています。1000を超えると書き込みができなくなります。