TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
ネットワークプログラミング雑談
35歳、発達障害のB型作業所通いですが 6
0からの、超初心者C++相談室
プログラマー目指してるんだが色々と教えてくれ
Vim vs Emacs Part2
php使ってる奴はアホ、これからはRuby on Rails!
ふらっと C#,C♯,C#(初心者用) Part139
関数呼出しはgoto文である
【Lua】組み込み系言語総合 その7【Squirrel】
テストしにくいコードをテストする方法教えて下さい

Objective-C [ObjC part:9];


1 :2017/11/17 〜 最終レス :2019/05/20
Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
 (Wikipedia:http://ja.wikipedia.org/wiki/Objective-C より)

前スレ
Objective-C [ObjC part:8.1];
http://mevius.2ch.sc/test/read.cgi/tech/1414816517/

Objective-C [ObjC part:8];
http://peace.2ch.sc/test/read.cgi/tech/1356341803/
Objective-C [ObjC part:7];
http://toro.2ch.sc/test/read.cgi/tech/1330330906/
Objective-C [ObjC part:6];
http://toro.2ch.sc/test/read.cgi/tech/1313891268/
Objective-C [ObjC part:5];
http://hibari.2ch.sc/test/read.cgi/tech/1279730299/
Objective-C [ObjC part:4];
http://pc12.2ch.sc/test/read.cgi/tech/1239721860/
Objective-C [ObjC part:3];
ttp://pc12.2ch.sc/test/read.cgi/tech/1186543111/
Objective-C
ttp://pc11.2ch.sc/test/read.cgi/tech/1106983092/
Objective-C
ttp://pc5.2ch.sc/tech/kako/990/990574267.html

2 :
*** プログラム技術板 ***
【マック】Macintoshプログラミング質問箱
http://peace.2ch.sc/test/read.cgi/tech/1113058054/

*** プログラマ板 ***
【Cocoa】Macプログラマのスレ【Objective-C】
http://kanae.2ch.sc/test/read.cgi/prog/1214208397/

*** 新・mac板 ***
Macでプログラミング{11}
http://anago.2ch.sc/test/read.cgi/mac/1414566499/

Xcode part14
http://egg.2ch.sc/test/read.cgi/mac/1476190499/

プログラミング言語Swift Part4
http://egg.2ch.sc/test/read.cgi/mac/1484763495/

3 :
*** 本家 ***
Objective-C プログラミング言語
https://developer.apple.com/jp/documentation/ProgrammingWithObjectiveC.pdf

Objective-C 2.0 プログラミング言語
ttp://read.pudn.com/downloads152/ebook/665246/ObjC.pdf

Blocksプログラミングトピックス
https://developer.apple.com/jp/documentation/Blocks.pdf

並列プログラミングガイド - GCDとか
https://developer.apple.com/jp/devcenter/ios/library/documentation/ConcurrencyProgrammingGuide.pdf

Objective-C Feature Availability Index
https://developer.apple.com/Library/mac/releasenotes/ObjectiveC/ObjCAvailabilityIndex/index.html

Objective-C Runtime Programming Guide
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Introduction/Introduction.html

そのほか英語
https://developer.apple.com/library/mac/navigation/

*** 書籍 ***
荻原本 第3版/Kindle 版も有り
http://amazon.jp/dp/4797368276

HMDTダイナミック本
http://amazon.jp/dp/4861006414

4 :
Objective-C Literals ― Clang 3.6 documentation
http://clang.llvm.org/docs/ObjectiveCLiterals.html

Apple のランタイムのソースコード
http://www.opensource.apple.com/source/objc4/

ダイナミック Objective-C サイト
http://news.mynavi.jp/column/objc/

英語のサイト
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://static.stevereads.com/papers_to_read/from_c_to_objective-c.pdf

5 :
Swift と関連する Obj-C ドキュメント

*** 本家 ***
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html#//apple_ref/doc/uid/TP40014216

Swift and Objective-C in the Same Project
https://developer.apple.com/library/ios/documentation/swift/conceptual/buildingcocoaapps/MixandMatch.html

Adopting Modern Objective-C
https://developer.apple.com/library/ios/releasenotes/ObjectiveC/ModernizationObjC/AdoptingModernObjective-C/AdoptingModernObjective-C.html

Embedding Content with Swift in Objective-C
https://developer.apple.com/library/ios/qa/qa1881/_index.html

6 :
>>1
とりあえずw、さんきゅーっ

7 :
前スレ最後の方は
「ぼく電気工事士ですけど、ブレーカーとスイッチの違いってなんですかね?
いつも電気ケトルでお湯沸かすのにブレーカーオンオフしてますけど?」
みたいでトリップ感あった。

8 :
メソッドに渡されるselfがclassのポインタかインスタンスのポインタかの違い
って言ってもわからんだろうな

9 :
>>7
上手い例えだと思う。

10 :
わかりました!
クラスメソッドはプロジェクトで1つしかインスタンスが持てない
インスタンスメソッドは複数持てる
ですね!

つまりメソッドのロジックは同じで内部変数が違うものをいくつも同時に保持したいかどうかですね!

11 :
一周回って合ってるおめでとう

12 :
ちょっと違う

13 :
ありがとうございます!

14 :
あれ?(汗)

15 :
逆に面白い解釈で初心者に解説する時の勉強になる可能性?
は無いか。

ここでNSObjctのインスタンスを見てみると
objc_object という構造体であり
中には Class ってのがいるだけだ
struct objc_object {
Class isa OBJC_ISA_AVAILABILITY;
};

Classってのはobjc_classと定義されているこんな感じの構造体だ
struct objc_class {
Class isa OBJC_ISA_AVAILABILITY;
Class super_class OBJC2_UNAVAILABLE;
const char *name OBJC2_UNAVAILABLE;
long version OBJC2_UNAVAILABLE;
long info OBJC2_UNAVAILABLE;
long instance_size OBJC2_UNAVAILABLE;
struct objc_ivar_list *ivars OBJC2_UNAVAILABLE;
struct objc_method_list **methodLists OBJC2_UNAVAILABLE;
struct objc_cache *cache OBJC2_UNAVAILABLE;
struct objc_protocol_list *protocols OBJC2_UNAVAILABLE;
};


そうインスタンスとはクラスを持っていてクラスはインスタンスを持っていないのだ
クラスメソッドもインスタンスメソッドもクラス構造体の中で定義されていて呼び出せる範囲が違うだけなのだ

そしてメソッドがインスタンスを持っているわけではなく
インスタンスの中のクラスの中にある物を呼び出しているのだ

これは構造はなくルールに近い話になる

16 :
>>14
インスタンスメソッドも、メモリに確保される実体は一つだけ
インスタンスをいくら作ろうがメソッドの実体は一つ
selfが違うからインスタンスごとに確保されたように見えるんだろ?
インスタンスを生成するごとに新たにメモリに確保されてるのはインスタンス変数

17 :
ロジックは1つで変数が複数ですね。
確かに無駄がないですね!
ここは超人レベルの方ばかりで難しいんですが、親切なので助かりました!

18 :
そうです

19 :
なぜ多くの開発者が今なお Swift よりも Objective-C を好むのか
https://frasco.io/why-many-developers-still-prefer-objective-c-to-swift-2c624232cdd2

20 :
もう一つ聞いていいですか。

Self.hensuと_hensuって同じものですか?
とりあえず全部_hensuで書いてます。

21 :
>>20
Self.hensuはゲッターが呼び出される
例えばこんな感じ
-(id)hensu{
 return _hensu;
}
これは
@synthesize hensu = _hensu;
としてインスタンス変数の_hensuを紐づけてると言う事
_hensuは直接_hensuを取る

取る時はそこまで問題にならないけど
セットする時は@propertyでretainを指定してる時は
@property (retain)id hensu;

Self.hensu = obj;
とするだけでセッターの中でretainしてくれるので
_hensu = obj;
とするより安全

色々自動で処理されて記述量が減った分、省略され過ぎて逆に分け分からなくなってる所は多い

22 :
せっかく値保持したくてretainにしていても_hensuにセットしてたら効果なくて、アプリが落ちるかもってことですね!
うわー、今までたくさん書いてきちゃった

23 :
例えばこうしたら
@interface test(){
 int _iHensu, _hensu;
}
@property (assign)int hensu;
@end
@implementation test
@synthesize hensu = _iHensu;
- (void)test{
 _hensu = 10;
 _iHensu = 90;
 NSLog(@"h1 %d", _hensu); //10
 NSLog(@"h2 %d", self.hensu);//90
}
@synthesize で hensuに_iHensuを登録すれば
self.hensuで呼び出されるのは_iHensuになる感じ
これはプリミティブ型のintだからassignだけど
オブジェクト型のインスタンスを
MRRチックに自分でretainするならセッター使わなくても問題ないよ
もちろんreleaseも必要
セッターゲッター使うとそれを省略出来るってこと

retainもセッターの中で
こんな感じの関数が呼ばれるだけだから
- (void)setHensu:(id)value{
 if(_iHensu != value){
   id oldValue = _iHensu;
   _iHensu = (value != nil ? [value retain] : nil);
   if(oldValue != nil) [oldValue release];
 }
}

24 :
知り尽くしてますね!
コツコツ_をselfに置換する方向でいこうかと思います(泣)

25 :
ただ処理速度の観点からいくとクリティカルな部分ではゲッターの関数呼び出しより
直接インスタンス変数を呼んだ方が良い場合もあるセッターもしかり
自分でコントロール出来るなら出来合いの関数を使わない方がスマートだったりする
あと
@property (assign)int hensu;
と登録してる場合は自動でソースにセッターも追加されてるから
関数を書かなくても
[self setHensu:10];

self.hensu = 10;
は同じなんだけど前者の書き方の方が都合がいい場合もあるから覚えとくと良い
自動入力での候補から入力した場合も数値まで行くから多少速い気もするし (これは慣れかもしれないけど

ちなみに@property setter =やgetter = で呼び出しの関数を変える事も出来るよ
こういうのを覚えておくとセッター関数をオーバーライドして同期処理を追加したりして
KVOを登録しないでKVOチックな事が出来たりする

26 :
あ、ちなみにオブジェクト型の個別のretain とか release はMRCでの話で
ARCだとまた少し話が変わってくるわけだけどもね
そんなに気にしなくても美味い事やってくれますよ彼女なら

27 :
objective-cってなんかすごく深いですね

28 :
X MRC
O MRR - Manual Retain Release

29 :
>>28
>>23

30 :
こんな感じに理解してたんですけど合ってます?

-initWithString
インスタンスメソッド。allocしないと使えない。あとでreleaseが必要。

+stringWithString
クラスメソッド。allocしなくていい。
autoreleasepoolに登録された状態のインスタンスが返るので、
releaseしなくていい。

ARCだと、「releaseしなくていい」という
コンビニエンス・コンストラクタのメリットが薄れた。
(気軽にallocしちゃってもメモリリークしない)

31 :
>>30
今時Obj-CでMRRを使う場面は無いと思うが、参照カウント方式は基本なので教えると

Obj *obj = [[Obj alloc] init];

“init”から始まる、名前がlower camel caseのインスタンスメソッドは、retain済みのオブジェクトのポインタを返す
これを「initファミリー」と言い、この命名規則を守れば自作メソッドでも自動的にretain済みを返す
変数objはただのポインタで、-initから返る上記のポインタ値を代入してるだけ
retain済みなので使いおわったら-releaseを呼んで解放する

AppleのAPIの、いわゆるコンビニエンスコンストラクタはautorelease済みのオブジェクトを返すので、releaseしてはならない
その場合main()のautoreleasepoolに登録されるので解放されるのはアプリ終了時になる
解放のタイミングを自分で制御したい場合はinitファミリーを使うかautoreleasepoolで囲うかする必要がある

32 :
{ initファミリー/retain } と { release } は対で使うこと

View *view_ = [[View alloc] initWithFrame:CGRectMake(0,0,100,100)];
[self.view addSubview:view_];
[view_ release]; //上記initWithFrameと対

これはself.viewがview_をretainして保持するので、以降直接参照しないのならここでreleaseしても良い
self.viewはselfが解放されるときに解放され、その時にview_にもreleaseが呼ばれる //self.view側で呼んだretainと対

33 :
対で使うのが大原則なので、例えば

@property (retain) id obj;

というプロパティを持ったクラスなら必ずそれをdeallocでreleaseすること

- (void)dealloc
{
 [_obj release];
 [super dealloc];
}

34 :
こんなことを全自動でやるのがARCなので、普通はARC使うけどね
でARCとは、ビルド時にretain/releaseの行を、strong/weakに応じて挿入するだけで実現できているのだ
シンプルだね

35 :
>>31-34
詳しい説明ありがとうございます!

自作メソッドでも、initから始めると自動的にretainされるのは
知らなかったです。

あと、main()のautoreleasepoolが解放されるのは
アプリ終了時、というのも分かってなかった…。

ARCがない時は、メモリリークが怖くて、
コンビニエンス・コンストラクタばっかり使ってましたけど、
あんまり意味がなかったのかも…。

今はARCのおかげで、何も考えずにallocとかnewできて
楽になりました。

36 :
>>1
遅くなったけどスレ立てありがと

37 :
複数のhファイルで同じ#import~をたくさんかくと何かデメリットがあるのでしょうか?
わかりやすくmで使っているものをそれぞれ全部書くべきか、書かなくてもビルドが通るなら書かない方がいいのかベストは何でしょうか。

38 :
>>37
#include
使ってた人は
重複定義とか循環参照とかでビルドエラーになった経験があるからね
#import
でも#include時と同じように気を付けるってだけ
実際#importは多重インクルードしない機能があるから問題ないけど
ソースが汚れるし参照でエラーが出る事あるしで無闇にimportしない
必要な物だけimportして
親子関係をしっかり考えたコーディングを心がけましょうってこと

39 :
なるべく必要最小限にということですね。

40 :
AViewcontrollerを開いたあとに、BViewcontrollerを開くと、Aでimport たファイルはBでしなくてもビルドが通るので書かない方がいいのかなとモヤモヤしてました

41 :
ヘッダで必要ならヘッダでimport、ソースで必要ならソースでimport

42 :
ヘッダにはimportせず
@class
の登場も多い

43 :
すれ違いだったらすみません。
dudReciveMemoryWarningの活用方法って何かありますでしょうか?

44 :
今必要でなくて再取得/再計算できるものは解放するんや
せやないとクラッシュする

45 :
するarcの場合は自動なのでやることはないとうことですか?
または配列にnilを入れたりすることも効果ありますか?

46 :
strong変数にnilを代入してメモリを解放
NSArrayは要素をstrongで保持するのでNSArrayごとnilにすれば解放される
ただでかいメモリ食うのは主にビューなんで、表示してない不要なビューは解放するのが効く
つうか、ビューは必要な分を動的に生成が基本だろ
そもそもそのメッセージ飛んできたらユーザーに再起動を促すね俺は

47 :
>>46
Viewを動的作成しておいて解放は効果ありそうですね。
Tabだったら他のViewcontrollerを解放することは可能でしょうか?
確かにこまごま対処するより再起動なら間違いないですね

48 :
返り値複数の関数は作れますか?

49 :
構造体とかobject(メンバ)を返す

50 :
cocoa event handling 難しいです。

Windowに置いたAVPlayerViewのjkl キーナビゲーションをカスタマイズ=潰したいです。
別のViewを配置して、NSResponderのkeyEquivalent系メソッドでキーコードのjklなNSEventをぶんどれば良いのでしょうか。

AVPlayerViewは、acceptFirstResponderにYesと返してくるのに、Viewをクリックしてもfirstresponderにならないので悩んでます。

51 :
AVPlayerViewのサブクラスを作って、その(キー)イベントハンドラでやればいいんじゃないの。てかそれが普通で簡単確実じゃないかなあ。もしくはMethod Swizzlingでとか
NSResponder云々はResponder chainを理解してなさげ。奪うとかよりも取りこぼしを拾うような感じで、やりたいような処理機会を奪うのはムズいだろう

52 :
もう少し教えて下さい。
event handling guideを読み進めたのですが、keyboard eventの場合には、最初にperformkeyequivalent
がWindow上の全viewに対して一通り呼ばれて、
その後にmenu barのショートカットが評価され、
それでも該当しない場合に初めて
keyDown:をresponder chainへ投げる流れに進む、
と理解したのですが、正しいでしょうか。

この理解ですと、acceptFirstResponder/responder chainが意味を持つのはキーイベント処理のかなり後になるように思えます。
viewが実装しているキーボード処理をoverrideする場合
親クラスがkeydownのみ実装していると仮定するのは
微妙かなと感じたのですが、AppKitではkeyequivalentでは実装しない、そういう前提で書くのが正しいのでしょうか。

53 :
読んだだけだろ?テストしたらわかるよperformKeyEquivalent:の意味が

54 :
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

55 :
こういう宣伝活動はエセ右翼

56 :
performSelecterで複数の引数を指定するにはどうすればよいですか?

57 :
performSelector:withObject:withObject:

58 :
ありがとうございます
3つからは配列しかないでしょうか

59 :
辞書にキー値で入れて渡せばいくらでも

60 :
ドキュメントのニュアンス的に書いてあるようにperformSelector:は簡易版のようなもので、本来NSInvocationを使うのが筋だと思ってる
まあ、NSInvocationはめんどくさいから普通に>>59のいうやり方にするけど
NSInvocation使ってperformSelector:のオレオレバージョンメソッド追加したりも簡単だけど、それもあんましないな

61 :
他で既にたくさん呼ばれている関数の引数が3つ以上だと使えないですね。
Timerで代替できるけど、ちょっと流れが読みにくくなっちゃうんですよね

62 :
progressviewを読んでも表示されないときに、処理を一旦をOSに返し?表示させるために使ってますが、他の良い方法はありますか?

63 :
流れが読めないなw

64 :
performSelector:withObject:withObject:... の、ただ引数が増えましたバージョンはNSInvocation使って普通にできたな

Timer〜処理を一旦をOSに〜がafterDelay:付きのような気ががするが、そもそもそれは複数引数なんてないしな
afterDelay:付きはcancelPreviousPerformRequestsWithTarget:selector:object:をどう実現すんのかわからんが、それいらんのだったら同じくでできる

65 :
単に次のrunloop cycleで処理を実行させたいということのような気がするんで
-[NSOpeartionQueue addOperationWithBlock:] でいいんじゃないかな (あれば、だけど)

66 :
キャンセルというのがあるんですね!
初めて知りました。

addOperation試してみます。
勉強になりました。

ありがとうございます。

67 :
今日からObjective-Cを勉強し始めた初心者です
OSX/macOS用のデスクトップアプリの製作を目標にしています
ファイル出力で躓いている点がありアドバイス頂けませんでしょうか

NSStringのwriteToURLでテキストファイルを出力したいのですが、Callback関数内で実行すると
EXC_BAD_ACCESSエラーになってしまいます
試しにコピペでCallback関数の外で実行するとエラーになりませんでした。コードはこんな感じです

NSString *hoo = @"test";
[hoo writeToURL: savePanelURL atomically:true encoding:NTUTF8StringEncoding error:nil]

savePanelURLはsavePanelで入力しています
USB機器に1byte送信して、その結果をCallbackで受信したら受信結果をファイルに書き出すのが目的です

ご助言お願いします

68 :
すみません、上の質問は取り下げとさせて下さい
スレ汚し失礼しました

69 :
67です。改めて質問させて下さい
savePanelで保存ファイル名を入力したらUSB機器に送信し、Callbackで結果を受信したらそれを
ファイルに出力する、と言う処理を考えています

savePanelから得たURLを直接Callback関数に渡す事は出来ないので一旦publicな変数に
格納していますが、Callback関数がこのNSURLを参照するとEXC_BAD_ACCESS例外に
なってしまいます。Callback関数内でNSLog()でNSURL変数を参照すると例外が発生しました

callback関数が別スレッドで動いているからでしょうか?しかしながら、unsigned charの配列
なんかは問題なく参照出来ています。クラスインスタンスだけだめなんでしょうか。

解決方法についてご助言頂けますと幸いです

70 :
Callbackにデリゲートも持たせる
iokitのUSB関連のコールバックは基本そういう設計になってる

71 :
情報量が足りないから推測するしかないけど、メモリ管理がきちんとできてなくて public な変数とやらがdangling pointer になっているような気がする

72 :
>>70
ありがとうございます。Delegateですか・・・
グーグッて見たんですが世の中のサンプルは全部delegate側と被delegate側でクラスが分かれてる
例ばかりで、以下のような1つのクラス内でdelegateをデリゲートする方法が分かりませんでした・・・

@interface hoo : NSObject {
NSURL *url;
}

- (void) sendUSBData;

static void receiveUSBDataCallback(・・・・・・);

@end


sendUSBDataの中でurlを設定した後にUSB機器に向けて送信しています。その際にCallbac関数に
receiveUSBDataCallbackを指定します

Callback関数内で受信結果をファイルに書き出したいのですが、
NSLog(@"%@", url) ;
と書いた行でEXC_BAD_SCCESSになります

73 :
これ単にコールバック関数まで来たときには既に NSURL *url が消えてなくなってるんと
ちゃうの?

74 :
hoo のインスタンスをどうやって receiveUSBDataCallback に渡してるの?

75 :
@interface hoo ...
@end
の中に入れてることから、そこに入れても hoo と全く無関係な単なる Cの関数 だとは思ってなさげ

76 :
hooで自信のインスタンスを返すクラスメソッド作っておけば良い
そこからhooを取得してurlを渡すゲッターメソッドも作っておけば良い
それだけの話でしょ

77 :
Callbackにユーザ定義ポインタ(void *)あるんじゃないの
何使ってるのか知らんけど、USBなんちゃらRecieveなんちゃらだったかは、Callback登録するときに一緒に渡して、Callback呼ばれる時にはそれが引数と渡ってくるようになってたようだけど
であれば、それでurlだのfooだの渡すだけじゃね

78 :
ああ、EXC_BAD_SCCESSなら、それやってて意図せず(ARCをよくわかってないと)に、元のインスタンスがCallback呼ばれる時にはすでにdeallocされてるとかありそう

79 :
基本的なiokitの設計ならコールバックはそうなってるけど
libusbとかでやってるなら話は変わってきそう

80 :
皆さんはキーボードはUS使ってる?
私は場所によってUSだったりJISだったりするんだけど
objcの場合@や{}[]使う事が多いからjisの方が書き易い気がしてきた
どうなんだろ

81 :
USになれたらUSが合理的

82 :
>{}[]使う事が多いからjisの方が書き易い
これがイミフでそういう話には進まないな

83 :
USキーボードってかな入力できるの?
ローマ字変換のみ?

84 :
>>82
俺は意味分かった。

85 :
>>83
できるけどキーの数足りてないので何らかの割り当ては必要

86 :
両方つかったけど
あまりかわらない
慣れかな
インテリジェンスだし
そんな連続でキーパンチ続けないし

87 :
bitFlyerがObjective-C共同開発者Tom Love氏を顧問に、ブロックチェーン向け言語開発に取り組む
https://jp.techcrunch.com/2018/04/06/tomlove-joins-bitflyer/

88 :
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/

89 :
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

4NUVT

90 :
5S1

91 :
今のObjective-C本はMacOSXでアプリ開発する前提の本ばかりで読みづらい
GNUstep上で環境作れば少しはマシになる

92 :
MAC OS COCOA プログラミング(4版)っていう解説書(XCODE 4.5準拠)で
macOSのcocoa Appのプロジェクトを作成してナビゲーターでて
xxx.xibを選択してAssistant editorを表示するとAppDelegate.hが表示され@property (assign) IBOutlet NSWindow *window;
@end
が挿入されるって書いてある(Page 109)んだけど

うちのXCODE 10.2の環境だとxibを選択して「View」メニューからAssistant editorを表示すると
AppDelegate.mが表示されてそこに
@property (assign) IBOutlet NSWindow *window;
@end
が追加されてるという妙なことになるんだけどAssistant Editorの表示を変えられる設定とかあるの?それともXCODE1Oの仕様?

93 :
本が古い、その対象のXcodeが古い。たぶん、Xcode 10よりもずーっと前に変わったとこかな
無名カテゴリ
@interface AppDelegate ()
@end
ってのが、4.5 の後のどこかで使えるよになって、パブリックでないものは、.m に書く書けるようになったので、.h ではなく .m になったのだよ

94 :
Xcode 4.5ってよくそんな古い本探してきたな。

95 :
https://www.amazon.co.jp/MAC-OS-X-COCOAプログラミング-第4版/dp/4501552700
https://www.tdupress.jp/book/b350041.html
普通に現役として売っていたり。うーむ...よく売るな...ないよりマシというのもあるかもしれないが。中古でも結構いい値で売ってるし
東京電機大学出版局か...Xcodeの部分くらい書き換えてもよさそうだが。執筆者もそのくらい勝手にやるのを認めるだろう。東京電機大学と銘打っているなら

96 :
https://www.amazon.com/Cocoa-Programming-OS-Ranch-Guides/dp/0134076958
原本は5版だな。April 24, 2015とびみょうだけど(たぶん無名カテゴリに対応はしてるかな)。何年もほったらかしで古いのは売るのね
1907年(明治40年) 電機学校創立。
1914年(大正3年) 電気雑誌『オーム』(OHM)創刊。
1922年(大正11年) 電機学校出版局の雑誌部が独立し、オーム社となる。
オーム社関連なのか。がっかりだよ。古き良き(よくない)日本の技術出版社(が出す日本語版)らしいけど

97 :
このスレ過疎ってたのでレス付くか心配してたんですけど皆さんレスありがとうございます
確かに参考書は古本を買いました
色々調べたけど、Objectibe-CでmacOSの開発参考書で新しいの見当たらないんですよね
英語版の5th edition も入手したんですが、アプリのコーディングは言語がswiftになってました
最近のXCODEの参考書はiOS/Swiftだけみたいですね

macOS/Object-Cでの開発は消えていくんですかね
macOS/Object-Cを勉強する良い参考書/サイトなんかあれば教えてください

98 :
純粋にObjective-Cの話題とは言えないですが、もしよかったらアドバイスをいただけると
ありがたいです。

マイナー言語の独自IDE上で、Cocoaブリッジを使ってIMによる日本語のインライン・インプットが
出来るようにしようとしています。必要に迫られてObjective-Cに対応するコードを書いてはいますが、
Cocoa や Objective-C のプログラミングの経験はほぼありません。

setMarkedText:selectedRange: で渡される変換途中のNSAttributedString文字列を、
attribute:atIndex:effectiveRange: を使ってビジュアル的にはアンダーラインの切れ目で表現される
変換文節に分割しようとしているんですけど、attribute: への NSUnderlineStyleAttributeName や
NSUnderlineColorAttributeName の指定では切れ目のところでも同じアンダーラインが連続している
という扱いになってしまう様で、期待通りになりません。

そもそも、日本語変換中の(同じ細さの)アンダーラインが切れている様子は NSAttributedString の
アトリビュートの指定で実現可能なのでしょうか。
またそれが出来るとして(←出来るのだろうと思いますが)、その切れ目の場所を知ることは出来ますか。

99 :
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/TextAttributes/Concepts/AboutTextAttributes.html#//apple_ref/doc/uid/20001804-BBCFEBHA
Temporary Attributes
で指定して
drawUnderlineForGlyphRange:underlineType:baselineOffset:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:
で描画するコードを書く
かな

Cocoaブリッジを使って〜とかなんで自分でやらなきゃならない&どこまでCCocoaなのかわからんけど

100 :
>>99
どうもです。
文字は、Mac版では最終的には Core Text で描かれるのですけど、自分がやらなくてはならないのは IM から
受け取った NSAttributedString を直接描くのではなく、それをその言語のテキストオブジェクトに反映させる
(それは既存の仕組みで結果的に描かれる)ということをしなくてはならないのです。
その NSAttributedString そのものを Cocoa フレームワークなり Core Text フレームワークなりに引き渡して描か
せられれば、多分アンダーラインもいつも見ている形で勝手に表現されると予想してるんですが、それが出来ないのが
辛いところで。それでアトリビュートを解析する必要があるのです。

その言語のGUIにはアンダーラインを表示する仕組みがないので、そっちは自分でOpenGLで描かねばならんのですが...

どこまで Cocoa なのかは、NSAttributedString から文字列と、そのアトリビュート情報を取り出すまで、ということ
になります。


100〜のスレッドの続きを読む
Kinect ハック 2台目
Visual Studio 2017 Part6
ドルオタワイ、1からプログラミングを学びたい
Visual Studio Code / VSCode Part7
VBSで便利なプログラムを作れスレ 2
【QBASIC互換!?】FreeBasic【GPL】 2
結局開発で最も大切なのはテーブルの正規化と制約
Smalltalk総合 Squeak Pharo
【.NET】WCF〜Windows通信基盤技術【通信】
プログラミングのやる気出す方法教えてくれ
--------------------
【した人】整形する喪女【興味がある人】
【CASIO】MUDMASTER GWG-1000 5【G-SHOCK】
何回聴いても飽きないミュージックを教えて下さい
*** FC岐阜 286輪 IP ***
ネットブックブームって案外早く終息したよな
アベノミクス失敗 丁寧に嘘つきの安倍2
AU民にとってオーディオの科学ってサイトどうなの?
八十亀ちゃんかんさつにっき 5だがね
【稲垣理一郎】Dr.STONE ドクターストーン Part23【Boichi】
☆★マイベスト1は?inRBS板★☆
金沢大学新入生スレ part4
翁長沖縄知事が死去 67歳 辺野古新基地反対を貫く
【バーチャルYouTuber】.LIVEアイドル部アンチスレ#12502【アップランド】
【神器】ストロボ 3個目【名脇役】
かんぱに☆ガールズ 5522社目
無料BSアニメ総合スレ 136日目
TAKAHIRO MIYASHITA The Soloist Part11
GRAPEVINE-グRバイン-vol.159
【下着】台湾 ゲストハウス総合スレ 9【返還】
【韓国】「“NO JAPAN”による大ダメージ」…ユニクロ、デサント、無印良品まで“ドミノダメージ” 日本企業の実績は悪化 [4/17] ★2
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼