【Cocoa】Macプログラマのスレ【Objective-C】

■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
垢版 |
2008/06/23(月) 17:06:37
Apple Developer Connection
http://developer.apple.com/jp/

関連スレ
Macでプログラミング{8}
http://pc11.2ch.net/test/read.cgi/mac/1195385771/

Objective-C [ObjC part:3];
http://pc11.2ch.net/test/read.cgi/tech/1186543111/

【マック】Macintoshプログラミング質問箱
http://pc11.2ch.net/test/read.cgi/tech/1113058054/

Cocoaはさっぱり!!! version.X(10)
http://pc11.2ch.net/test/read.cgi/mac/1211290055/

Xcode part6
http://pc11.2ch.net/test/read.cgi/mac/1201693264/
2013/03/14(木) 21:44:57.44
>>319
うん。それを呼び出したいってのだから、そうだろけど

[self application:[UIApplication sharedApplication] didReceiveRemoteNotification:remoteNotif];

[self application:application didReceiveRemoteNotification:remoteNotif];
でよかったなあ。そういえば application:didFinishLaunchingWithOptions: 内でという話しだったなと

メソッド名(セレクタ名)の一部と単なる引数名って...
2013/03/17(日) 19:46:27.41
>>319
> 2つのapplication

セレクタの一部と仮引数のこと言ってんの? いやまさかね
2013/03/17(日) 20:40:54.03
>>321
後日教本で把握した元の質問者だけど、
識別子が複数の単語から形成されるのはプログラミング言語として結構珍しいんじゃないかと思う。

この場合はapplication:didReceiveRemoteNotification という名称のセレクタ(メソッド)になるわけで。
ところで、objective-cのセレクタの第1引数にキーワード名が付けられない理由はなぜだろう?
2013/03/18(月) 01:16:08.07
別に無くてもいいんじゃねってのはCocoa/IOSの命名からわかるだろう
2013/03/18(月) 01:21:03.16
あと、セレクタ名が
引数無し
method
引数付き
method argument:
method argument1:argument2:
ってなるんじゃね
だったら
methodArgument:
methodArgument1:methodArgument2:
と変わらんだろう。

んなこまけーとこ気にすんなっ。俺やお前より賢い人が考えたものだと受け入れろw
2013/03/18(月) 01:49:04.47
再び考えてみたら
[instance method argument1:hoge argument2:hogehoge];
って気持ち悪いじゃんっ。現在のに見慣れているからだけでなく絶対的にw

>>324
>methodArgument1:methodArgument2:
書きたかったのは
methodArgument1:argument2:
でした
326仕様書無しさん
垢版 |
2013/03/24(日) 10:29:56.43
※本投稿の拡散歓迎です。
派遣労働者のパワハラ・セクハラ対応策について

下請け労働者、業務委託、派遣労働者は契約期間が短期という制約があり、契約更新拒否をちらつかせた不当な労働強要の実態があります。
雇用形態における壁・差別は法律に直接的規程はなくとも認められているわけではありません。
「正社員の有期雇用労働者に対する優先的地位乱用」による「侮辱罪」、「脅迫罪」、「強要罪」、「傷害罪」、条例違反で刑事告訴できるが、
本稿では刑法ではなく労基法関連の対策に焦点をあてます。

労働基準法第5条(強制労働の禁止)(1年以上10年以下の懲役又は20万円以上300万円以下の罰金)
■精神の自由を不当に拘束する手段によつて、労働者の意思に反して労働を強制してはならない。
例:正規労働者(同僚)による残業の強制。仕事の期限が遅滞した際に「繰り返し」残業を示唆する。
例:派遣の仕事の回し方の裁量を正社員が決めるなどと示唆する。
例:飲み会、昼食、たばこの同伴を強要する。

労働基準法3条 (六箇月以下の懲役又は三十万円以下の罰金)
■社会的身分を理由として労働条件について差別的取扱をしてはならない。
例:社内制度に明示されていない指揮命令系統が正社員と派遣社員に存在する。
派遣社員も正社員と同様に社内制度に準じるという契約上、業務で平等に取り扱う必要がある。
例:社内制度上の上司でもない正社員が命令をしたり、仕事上の指導権・裁量・許可権限をもつこと
派遣契約の内容にそうした区別を制度化するような客観的な証拠がなければ派遣社員側に有利といえる。
例:派遣社員に業務上における裁量を一切与えず、非管理職の正社員が許可を与える

労基法3、5条については、経営責任も問えますので、刑事告訴できる相手は以下のとおり。

派遣先 当該正社員
派遣先 指揮命令者
派遣元・派遣先 代表取締役

刑事告訴(告発)の行い方ですが、内容証明郵便で告訴状(告発状)を地方検察の直告班に郵送してください。
2013/03/29(金) 04:19:37.78
昔、17年くらいまえかなー。
appleのdeve用CDに音楽トラックが入ってる月があってさ、女性ボーカルの曲。
誰かタイトルしらない?
328仕様書無しさん
垢版 |
2013/04/24(水) 10:41:58.24
ttp://www1.axfc.net/uploader/so/2879450.pqf

職業プログラマーが3時間でiPhoneアプリを作成出来るようにするための
ドキュメントを公開しました

もし良かったら利用してください
2013/04/24(水) 12:10:49.81
>プロトコルを採用しているクラスは、そのプロトコルで宣言 されているメソッドを必ず実装しなければなりません
それは以前の話し
今は、@required と @optional が指定でき、実際に @optional なのも多い。もちろん、@optional なプロトコルメソッドは任意

プロトコルなんだから「採用」よりも「準拠」じゃねと思うけど、それはまあいいや
330仕様書無しさん
垢版 |
2013/05/07(火) 17:08:51.52
http://serif.hatelabo.jp/3644295abb7450da9151ba9f25008d2f64156f73/dbfe0b17c7f48159c46dda86c7f46f5ee90b8b47

ワロタw
2013/05/21(火) 00:57:56.62
>>329
adoptの日本語訳だしな
2013/05/21(火) 01:01:16.92
>>311
これしばらく調子乗ってノリノリでつかってみたけど、あとでクソ面倒なことに気付いたから[[Hoge alloc] init]の形で古典的に書いてるよ。
最初に定義された記法だから破綻がない。
333仕様書無しさん
垢版 |
2013/05/24(金) 10:37:49.48
流行はalloc initなんて書かないで
newするらしいじゃん
2013/05/24(金) 10:56:40.15
>>333
ARCでretain書かなくなったからnewでもいい、ってことだが
googleのobjCガイドラインも、Apple Cocoaガイドラインもalloc initを推奨してる

それに稀にinitを別のシグネチャに変えたりするときに、newだとめんどくさい
2013/05/28(火) 12:30:45.22
ARCについて質問です。
ARCで、イニシャライザでFlyweightパターンなどの都合でレシーバ以外のオブジェクトを返した場合、
センダ側ではalloc→initとやっている訳ですから、releaseすることなくそのオブジェクトへのポインタがセンダ側で失われメモリリークしますよね
かといってイニシャライザ側の実装ファイルをARC解除して、レシーバ以外のオブジェクトを返すときにイニシャライザでreleaseしようとすると、
センダがもしalloc→initとやらずに、alloc→autorelease→initとかやっていたら、二重にreleaseされてしまう恐れがありますよね…
Flyweightパターンを適用する場合にはinitを封印して常にクラスメソッドを使うようにさせなければならないのでしょうか。
2013/05/28(火) 13:23:39.55
>>335
@implementation FactoryClass
- (id)init
{
NSObject *object = [[NSObject alloc] init];

return object;
}

- (void)dealloc
{
NSLog( @"dealloc %@", self );
}
@end


_object = [[FactoryClass alloc] init];
NSLog( @"%@", _object );

って、ちょっとナンだかのでも、
_object = [[FactoryClass alloc] init];
直後(?)に、FactoryClass のインスタンスは解放される
思っているよりもかなり賢いぜよ
2013/05/28(火) 16:06:31.52
ARC切ってstatic analyser使ったら賢すぎだわ
一度好きに書いてみてアナライザ通したら指摘してくるよ
2013/06/02(日) 21:47:42.90
Analyser賢いよな。結構ビックリするような瑕疵を見つけてくる。
2013/06/10(月) 03:12:19.77
.
2013/06/11(火) 11:46:51.94
Cocoa自体は10.9でも激変なしかな。
iOSはGUI激変でデザイナー涙目だけど
2013/06/14(金) 00:30:51.41
10.10でiOSと統合っぽいな。区切りもいいしw。
2013/06/14(金) 01:12:53.75
Sprite Kitは使いやすそうだね
2013/06/14(金) 03:56:48.87
>>341
iOS 7で反応見てからMacをiOSに寄せるアプローチとみた
344仕様書無しさん
垢版 |
2013/06/15(土) 09:12:11.65
おまえら、はやくこれ完成させてください
https://github.com/ashie/gtkimcocoa
2013/06/19(水) 16:13:20.34
適当なスレが見つからなくてスレ違いだったらごめんなさい。
山ライオンぐらいから厳しくなってきたのでappファイルの署名をしたいとDev契約結んで
キーチューンアクセスとDevセンターからcerを生成してターミナルからコマンドで署名しても
CSSMERR_TP_TRUSTEDというエラーで署名できなくて困っています。
キーチューンアクセスを調べたらDevセンターからDLしたAppleの署名付きcerにも
関わらず、「この証明書は不明な機関によって署名されています」となっていました...orz

Appleからもらったのに不明な機関とはどういうことでしょう。。?これはどうしたらよいのでしょうか。
ちなみに他の署名書に 「Apple Worldwide Developer Relations ~」はあります。
2013/06/19(水) 17:57:08.47
ここもいいけど、Mac板のほうが人多いかも

俺はよくわかんない、ごめんね
2013/06/20(木) 23:59:49.39
NSDictionaryからクラスに、
キーと名前が一致するプロパティに値を移してくれるようなメソッドってあります?

まぁセレクタとforで数行じゃんって話ではありますが…
2013/06/21(金) 00:30:38.80
ない。
うん、セレクタてかKVCで数行で、これもわかっていると思うがカテゴリで追加すればいいことだからな
2013/06/22(土) 10:58:05.14
KVC下手に使うとあっという間に訳わからんことになるけどね
2013/06/22(土) 13:38:42.25
>>347の目的ならどっちも変わらない
2013/06/22(土) 13:55:36.87
forは使わないけどforeachは使うとかだったら腹痛
2013/06/22(土) 13:59:49.38
俺の使っているのにはforeachなんて語は無いな。さすがそんなので腹痛になるだけある
2013/06/22(土) 14:05:45.77
foreachとdowhileは害
2013/06/22(土) 14:14:39.20
コードも張らない奴に用は無い
forで回して突っ込んで置けば良いと俺は思うよ
2013/06/22(土) 14:15:38.02
こういうヤツが権力を持つとアホなコーディング規約作りそうというの伺える
2013/06/22(土) 14:16:08.79
>>355 >>353
2013/06/22(土) 18:16:56.35
>>355
デメリットを理解せず失敗ばかりするアホ
2013/06/22(土) 18:19:41.08
01しかない職業病なのか元々馬鹿なのかわからんヤツだな
まあ元々賢くないから職業病wになるのだろうから同じか
2013/06/22(土) 19:06:27.56
>>354って言うから書いてみた

@implementation NSDictionary (AddOn)
- (void)expandToPropertyForObject:(NSObject *)object
{
for(NSString *key in self.allKeys){
if([key isKindOfClass:[NSString class]])
continue;
@try{
[object setValue:[self objectForKey:key] forKey:key];
}
@catch(NSException *e){
if([e.name isEqualToString:@"NSUnknownKeyException"])
continuel;
@throw e;
}
}
}
@end

セレクタ使う場合うはset大文字なんだろうけど、NSStringの便利メソッドってあったけ?
2013/06/22(土) 19:08:13.41
ああ、
if(![key isKindOfClass:[NSString class]])

continue;
だな。まあいいや
2013/06/22(土) 20:33:22.31
>>359
やるじゃん
2013/06/22(土) 22:25:24.02
>>359
隙のないコードだ
2013/06/25(火) 18:20:00.23
すみません
KVOについてなんですが
クラスAでプロパティabstractObjectsをKVC準拠にし、
クラスAのサブクラスBでプロパティabstractObjectsの言い換え(エイリアス)としてプロパティconcreteObjectsを追加します
concreteObjectsとabstractObjectsの名前を変えただけで中身は同じなので、サブクラス側でKVCを実装しなおすのはやりたくないのですが
%2b keyPathsForValuesAffectingValueForConcreteObjects
で[NSSet setWithObject:@"abstractObjects"]を返しておけばいいのですかね?
2013/06/26(水) 05:00:57.45
>>363
>クラスAのサブクラスBでプロパティabstractObjectsの言い換え(エイリアス)としてプロパティconcreteObjectsを追加します
そんなことする意味あるの?
2013/07/01(月) NY:AN:NY.AN
NSUserDefaultsで保存したデータをオーガナイザ等から書き換えることはできますか?

デバッグ担当から、デバッグ用に内部データ書き換え画面を作ってっていわれて困りんぐ。
2013/07/04(木) NY:AN:NY.AN
ステータスバーにセットしたメニューの更新の仕方を教えてください。
ファイルをダウンロードし、そのダウンロード進行率をメニューの項目として表示しようと思い、以下のようなメソッドを実装しました。NSURLDownload のデリゲートメソッドからダウンロードステータスを受信する度にこのメソッドが呼ばれます。

-(void)setDownloadStatus:(NSArray *)status {
NSInteger tag = 0;
NSString *title;
NSString *percentage;
if ([status count] >= 1) tag = [[status objectAtIndex:0] intValue];
if ([status count] >= 2) title = [status objectAtIndex:1];
if ([status count] >= 3) percentage = [status objectAtIndex:2];
if ([systemStatusBarMenu itemWithTag:tag]) {
NSMenuItem *sbMenuItem;
sbMenuItem = [systemStatusBarMenu itemWithTag:tag];
[sbMenuItem setTitle:[[[title stringByAppendingString:@" : "]
stringByAppendingString:percentage]
stringByAppendingString:@"%"]];
}
}

メニューが閉じている間は問題ないようですが、自分がメニューを開いている途中は上手く更新されません。また、メニューを開いた状態でしばらくすると Xcode がエラーを吐きます。(lldb)

そもそもメニューの項目を更新する方法として、このメソッドの書き方は正しいのでしょうか。
そしてメニューを開いている状態でも上手く更新されるような方法を教えてください。
367仕様書無しさん
垢版 |
2013/07/14(日) NY:AN:NY.AN
すみません、Objective-Cの絵本って本を読んでてどうしても納得出来ないところがあるのですが…

NSArray *ary;
ary = [NSArray arraywithObjects:@"ABC",@"DEF",@"GHI",nil];
と定義した時、aryでobjectAtIndexをしたい時は
NSString *str [ary objectAtIndex:1];  ですよね?

本ではNSString *str [array objectAtIndex:1];ってなってたんですけど、誤りだと思うのです。。

あと上記の定義で
[ary replaceObjectAtIndex:1 withObject:@"DDD"]とした場合は「@"ABC",@"DDD",@"GHI"」になりますよね?
本では「@"GHI”,@"DDD",@"ABC"」という風にDDDが置き換わった上に前後のABCとGHIも入れ替わってて意味わかんないです、、
2013/07/14(日) NY:AN:NY.AN
>>367
納得する必要は一切無い
自分でそのコード動かして見れば良いよ
369仕様書無しさん
垢版 |
2013/07/15(月) NY:AN:NY.AN
>>368
そうですよね…
まだ書けるほど技術ないのですが、力がつくまで謎は胸にしまっておきます。
2013/07/15(月) NY:AN:NY.AN
>>396
いやいやいやいや
実際そこに書いてあるのを書き写して動かして見ろよ
それもやらずに本だけ読んでも何の力もつかないぞ
精々我慢して本を読み切る能力くらいだ
371仕様書無しさん
垢版 |
2013/07/15(月) NY:AN:NY.AN
>>370
今やってみたのですが、1番目の謎は解明できた(やっぱり本が間違っていた)のですが、
2番目はうまく処理してくれませんでした。。

NSArrayではなく、NSMutableArrayにしてやってみたのですがやっぱりエラーになって、、
もしかしてallocとかしないと配列の番号を指定してもエラーになるという事でしょうか?
372仕様書無しさん
垢版 |
2013/07/15(月) NY:AN:NY.AN
ちなみにエラー内容は
「thread1:signal SIGABRT」です。
2013/07/15(月) NY:AN:NY.AN
クラッシュはだいたいにおいてSIGABRTにしかならない
ログに本当の原因が出ているだろう。だいたいにおいて

NSMutableArrayにするのは正解
374仕様書無しさん
垢版 |
2013/07/16(火) NY:AN:NY.AN
>>373
クラッシュ…?
なんか沢山意味不明な文字が書いてありますが、
[ary replaceObjectAtIndex:1 WithObject:@"DDD"]がunrecognizedってなってます。
戻り値もvoidなので書き方自体は間違ってないと思ったのですが…
お手上げです。。
2013/07/16(火) NY:AN:NY.AN
unrecognized selectorとかだったらaryにreplaceObjectAtIndex:withObject:が実装されてないことになる。
aryが別のオブジェクトになってたり、メソッド名をうち間違えてたりするんじゃない?
2013/07/16(火) NY:AN:NY.AN
NSMutableArray *ary = (NSMutableArray *)[NSArray arraywithObjects:@"ABC",@"DEF",@"GHI",nil];

NSArray *ary;
ary = [NSArray arraywithObjects:@"ABC",@"DEF",@"GHI",nil];
NSMutableArray *mutableAry = (NSMutableArray *)ary;
とでもしているんだろ
377仕様書無しさん
垢版 |
2013/07/17(水) NY:AN:NY.AN
Viewの座標変換について教えてください。
A<-B<-C<-D (Aが親)
の順にUIViewが重なっているとして、AにおけるDのframe.originの値をとりたいです。

[DView convertPoint:DView.frame.origin fromView:AView];
[DView convertPoint:DView.frame.origin toView:AView];
とか試してみたのですが、正しい値がとれている感じがしません。

@上記のやり方であってますか?
AViewに階層が複数ある場合でも、「AViewにおける座標」や「Bにおける座標」
のように各階層ごとの座標を取得できるものなのでしょうか?
378仕様書無しさん
垢版 |
2013/07/17(水) NY:AN:NY.AN
>>375
>>376
ありがとうございます!出来ました!
NSMutableArray *ary;
ary = [NSMutableArray arrayWithObjects:@"ABC",@"DEF",@"GHI",nil];
のところが
NSMutableArray *ary;
ary = [NSArray arrayWithObjects:@"ABC",@"DEF",@"GHI",nil];
ってました…。本がこのような記載になっていたため、気づきませんでした。
思わぬところにも誤植があったみたいです

こんなにたくさん誤植があると、ちょっと信じられなくなってきました…
2013/07/17(水) NY:AN:NY.AN
>>377
http://anago.2ch.net/test/read.cgi/mac/1370485786/
2013/07/17(水) NY:AN:NY.AN
>>377
@あってません。frameとboundsの違いを理解しよう
Aもちろん、できる

[CView convertPoint:DView.frame.origin toView:AView];

[DView convertPoint:DView.bounds.origin toView:AView];

[AView convertPoint:DView.frame.origin fromView:CView];

[AView convertPoint:DView.bounds.origin fromView:DView];
だろうな

iOSは次回からは>>379で。ここはCocoa
2013/07/17(水) NY:AN:NY.AN
[CView convertPoint:DView.frame.origin toView:AView];
よりも
[DView.superview convertPoint:DView.frame.origin toView:AView];

[AView convertPoint:DView.frame.origin fromView:CView];
よりも
[AView convertPoint:DView.frame.origin fromView:DView.superview];

の方がよかったか
382仕様書無しさん
垢版 |
2013/07/20(土) NY:AN:NY.AN
Objective-Cにてプログラムを始めた者です。
解説本にサンプルとして書かれた、以下コードを別のコードに変えて実行すると、
「Thread 1:EXC_BAD_ACCESS〜 」のエラーとなります。
(※同じ動作を期待したのですが・・・・)

正常に動作するサンプルコード
→ NSLocale *jaLocale;
jaLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"];
変更するとエラーとなったコード
→ NSLocale *jaLocale;
jaLocale = [NSLocale alloc];
jaLocale = [jaLocale initWithLocaleIdentifier:@"ja_JP"];

なぜエラーになってしまうのか、どなたか教えて頂きたく書き込みいたしました。
よろしくお願い致します。
2013/07/20(土) NY:AN:NY.AN
NSLocale 内で、ちょっと変わったことをやっているか、ARCのなんかの対応を怠っているかじゃね

特にallocとinitを分けてもObjective-C的に間違いではないが、極めて稀な場合を除いてそんなことする意味が全く無いので、するやつあいねえだろと想定してなかったとかじゃね

ARC無しだと同じ動作を期待したように動くよ
他のクラスでARC有りでも期待したように動くのもある
384仕様書無しさん
垢版 |
2013/07/21(日) NY:AN:NY.AN
NSAutoreleasepool とARCって、実際どっちがいいんでしょう?
2013/07/22(月) NY:AN:NY.AN
善し悪しの判断基準は何なのか
386仕様書無しさん
垢版 |
2013/07/22(月) NY:AN:NY.AN
扱いやすさ?
2013/07/22(月) NY:AN:NY.AN
細かいツッコミをしない優しい人らだなあ
2013/07/23(火) NY:AN:NY.AN
自動解放プールをARCと同様のメモリ自動管理システムだと勘違いしている奴はたまにみる
389仕様書無しさん
垢版 |
2013/07/23(火) NY:AN:NY.AN
えっ違うんですか?
もしよろしければ、その違いを…
2013/07/23(火) NY:AN:NY.AN
ARCにも autorelease pool は存在する。利用するその利点がうっすーくなっているけど

ARCじゃないの(MRC)
retain/release/autoreleaseをプログラマが適所に書く
ARC
retain/release/autoreleaseをコンパイラが勝手に適所に挿入してくれる。おまけとして、weakなんて二次的な変数を安全にしてくれる(指しているインンスタンスが無くなるとnilになる)

MRC 「Manual」 Reference Counting
ARC「Automatic」 Reference Counting

というのは、Webにごろごろ転がっているだろ
391仕様書無しさん
垢版 |
2013/07/24(水) NY:AN:NY.AN
わかりやすいです&#8252;
ありがとうございます( ; ; )
2013/09/09(月) 19:49:54.32
GTMHTTPFetcher使ってphpのjsonにデータ渡してmysqlに登録する処理をしていて、
特定のデータの時だけ、テーブルに登録した画像のバイナリファイルが欠損するのですが、
何か原因パッと思い浮かばないでしょうか?

objective-cでデータ渡すまでのバイナリは正しくて、phpで受けた時には欠損してるのですが、その間になにが起きてるのかよく分からなくて、
欠損するデータができる場合もパターンがあるのですが、100%同じ欠損を再現するのでネットワークとかハードスペックの問題ではないと思ってます。
2013/09/16(月) 01:14:19.70
Cocoaで現在マウントされてるメディア名(/Volumes/***)を取得するには
NSArray* arr = [[NSWorkspace sharedWorkspace] mountedRemovableMedia];
を使いますが、dfコマンドで表示されるようなFilesystem名(/dev/disk***)を取得するには
どうすればいいのでしょうか? よろしくお願いします。
2013/09/16(月) 03:40:02.27
>>393
#import <sys/mount.h>

struct statfs *mountBuffer;
int numElements;
if( (numElements = getmntinfo( &mountBuffer, MNT_NOWAIT )) > 0 ){
for( int idx=0 ; idx < numElements ; idx++ ){
NSLog( @"%s on %s", mountBuffer[idx].f_mntfromname, mountBuffer[idx].f_mntonname );
}
}
2013/09/16(月) 23:30:50.85
>>394
取得できました、ありがとうございます。
396仕様書無しさん
垢版 |
2013/09/21(土) 12:19:29.61
Dictionary.appに追加出来るオンライン辞書(Weblio)を作ってみた、なんてやついる?
397仕様書無しさん
垢版 |
2013/09/22(日) 22:36:09.14
xcodeにてobjective-cを勉強中の者です。
「Xcode4ではじめるObjective-cプログラミング」という書籍の内容を進めているのですが、
以下の部分について、方法がわからず困っております。
-------------------
@あらかじめ、スーパークラスとなるPersonクラスをプロジェクトに追加しておきます。
A「File」メニューの「New」→「New File」を選択し、テンプレートを選択するダイアログを表示します。
B「Choose a template for your new file」画面で、左側のグループから「Mac OS X」→「Cocoa」を選択します。右側にグループに属するテンプレートの一覧が表示されるので「Objective-C class」を選択します。
C次の画面では「Class」でクラス名として「ClubMember」を指定します。「Subclass of」で継承元となる「Person」を選択します。
D次の画面で保存先のフォルダを選択し「Create」ボタンをクリックします。
E以上で、「ClubMember.h」と「ClubMember.m」のひな形がプロジェクトに追加されます。インターフェースセクションである「ClubMember.h」を開いて、Person.hがインポートされていること、およびスーパークラスが「Person」になっていることを確認してください。
---------------------------
環境はOS X でバージョンが10,8,5、Xcodeのバージョンが4.6.3です。
上記部分までのレッスンで、自作クラス作成がありPersonクラス(Person.h、Person.m)は作成済みです。
その流れの中、上記@の「Personクラスをプロジェクトに追加しておきます」の方法がわかりません。
よって、Cの[「Person」を選択します]の部分でスーパークラスの選択に「Person」クラスは当然ありません。

基本的な事で恥ずかしいのですが、スーパークラス候補に自作クラスを追加する@の部分の方法をご教授頂けませんでしょうか。
どなたかよろしくお願いいたします。
2013/09/23(月) 08:00:25.93
.hと.mをXcodeの左ペインにドラッグして、Copy Itemsとadd to targetsにチェック。
399仕様書無しさん
垢版 |
2013/10/07(月) 11:48:04.93
質問です。
写真等のUIImageの上に、メモとしてUIImageを置き、その上に落書き等をできるようにしています。
しかし、消しゴムの役割を持つ機能が実装できずに滞っています。
検索しても、白キャンパス前提の、白で塗りつぶして擬似的に消したように見せる状態にすることしか見つけられませんでした。
また、元画像から消しゴムの範囲をコピーして貼付ける手法をとっていますが、メモ部分だけを取り出したい時、
現状では当然ながら消しゴムでこすった部分だけ、メモに元画像が映り込んでしまいうまく使えません。

どのようにして、Strokeした部分を透明に戻すことができますでしょうか。
よろしくお願い致します。
400仕様書無しさん
垢版 |
2013/10/07(月) 11:52:49.21
すいません。誰かにきこうとすると頭が冴えるもので、
書き込み直後、思いついたものを試したところ、解決しました。

CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeClear);
2013/10/30(水) 00:18:48.87
あるアプリが、「Dockに追加」された事の通知を別のアプリでうけとりたいのですが、何か方法はあるのでしょうか。
2013/11/03(日) 23:07:28.93
>>401
だれかー、知っているひといる?
2013/11/03(日) 23:40:15.77
いやそんな通知は無いだろうというのが沈黙なんだろう

~/Library/Preferences/com.apple.dock.plist
をポーリングしてみるとか
2013/11/04(月) 23:21:47.98
>>403
そうなんですかね、、

>>~/Library/Preferences/com.apple.dock.plist
をポーリングしてみるとか

ちなみに、killall Dockしないと追加内容は、com.apple.dock.plistに反映されない。
追加を検知して、killall Dockさせたいのですが。あきらめます。
2013/11/04(月) 23:28:55.75
>>404

>>ちなみに、killall Dockしないと追加内容は、com.apple.dock.plistに反映されない。

これ、間違ってましたすいません
2013/11/14(木) 11:51:15.56
カテゴリのクラスエクステンションを行うのは正しくないのでしょうか?

UIView+addition.m

#import "UIView+addition.h"

@interface UIView( addition )
-(void) additionalMethod;
@end

@implementation UIView( addition )
-(void) additionalMethod{

}
@end

このような記述をすると、interface部分で
"Duplicate definition of category 'addition' on interface 'UIView' "
というワーニングが出ます。

UIView+addition.h側にも@interface(addition)部があるのが原因ですが、
これを@interface()に変えると、ヘッダ側で宣言したメソッドの実行部に
"Category is implementing a method which will also be implemented by its primary class"
のワーニングが出ます。

エラーではなく動作に問題はないのですが、カテゴリとエクステンションを同時に行う際の正しい書式をご存知の方、ご指導お願いします。
2013/11/14(木) 12:35:06.98
>>406
UIViewなどの既存のクラスに無名カテゴリを追加するのは良くないと思う。
プライベートなメソッドを追加するだけなら、今は@interfaceで宣言せずに@implementationに実装だけ書けるよ。
2013/11/14(木) 12:44:01.01
>>406
@interface(addition) を書くのはUIView+addition.h だけでいい。
UIView+addition.m には要らない。二ヶ所にあるから怒られてる。
2013/11/14(木) 13:02:19.13
>>407 >>408
なるほど、プライベートメソッドを前方宣言しないと確かにワーニングが出ませんが、
”正しい”書き方ではないのだと思っていました。
今はプライベートメソッドは宣言しなくてもいいんですね。
ありがとうございます。
2013/11/14(木) 13:40:01.04
>>409
コンパイラが賢くなったからね。ここ数年のObjCの進化は凄まじいものがあるから、いっぺんおさらいするといいよ。
2013/11/22(金) 17:23:50.79
質問があります。

iphone5sになってからデフォルトのカメラアプリが120fpsのスロー動画を撮影できるようになったと思います。
それを用いてアプリを作りたいのですが、これはAVFoundationのフレームワーウで実装できるものなのでしょうか。
activeVideoMinFrameDurationプロパティなどの記述を見つけはしたので、調べる方向性は間違っていないと思いたいのですが・・・
2013/11/24(日) 18:26:23.51
Cocoa != iOS
2013/11/25(月) 09:08:49.32
441、書き込んでから気づきました・・・すみません
2013/11/26(火) 16:23:45.05
そもそもプログラマー板はプログラマーという変な生き物の生態について論じる所なので、プログラミングの質問をするのが間違い。
Mac OS XやiOSプログラミングの本スレは新Mac板にあるし、それ以外のプログラミングの質問はふつープログラム技術板でするもの。
2013/12/03(火) 21:05:50.73
なにをいまさら。初期からすでにそんなお題目はお題目でしかないだろ
416仕様書無しさん
垢版 |
2013/12/19(木) 23:31:43.63
教えてください。
NSLog(@"message:%@",str);
NSLog(@"%@",str);
ってどう違うんですか?
2013/12/19(木) 23:38:08.99
>>416
実際にログを出してみて違いが解らなかったの?
出力されるログに"message:"がつくかどうか
418仕様書無しさん
垢版 |
2013/12/20(金) 00:13:30.68
すみません。勘違いでした
419仕様書無しさん
垢版 |
2013/12/28(土) 12:44:43.78
あるクラスの中で使う列挙型を定義したいのですが定義場所はどこが一般的ですか?

・ヘッダファイルのインスタンス変数定義領域
・ヘッダファイルの@interfaceの前

どこなんでしょうか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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