Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
(Wikipedia:http://ja.wikipedia.org/wiki/Objective-C より)
前スレ
Objective-C [ObjC part:8];
http://peace.2ch.net/test/read.cgi/tech/1356341803/
Objective-C [ObjC part:7];
http://toro.2ch.net/test/read.cgi/tech/1330330906/
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
探検
Objective-C [ObjC part:8.1]; [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2014/11/01(土) 13:35:17.70ID:12FSUUrY
74デフォルトの名無しさん
2014/11/15(土) 14:15:15.80ID:Cmo7am1O >>73
使う側からしても、型が違ってもメソッド名が同じな方が使いやすいかなと
思ったりしますが、確かになくてもよいといえばよいですね
使う側も渡す引数の型を意識してコーディングするので、むしろ
よいかもしれませんね
Message Forwardingですか。この辺りを読み込んでみます
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtForwarding.html
ありがとうございます
使う側からしても、型が違ってもメソッド名が同じな方が使いやすいかなと
思ったりしますが、確かになくてもよいといえばよいですね
使う側も渡す引数の型を意識してコーディングするので、むしろ
よいかもしれませんね
Message Forwardingですか。この辺りを読み込んでみます
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtForwarding.html
ありがとうございます
2014/11/15(土) 14:35:07.73ID:O7G7JpVO
メソッドの解決を名前だけでなく型でもやろうとすると何気に大変
仮にあるクラスAに
-(void)foo:(NSObject*)x;
-(void)foo:(NSNumber*)x;
-(void)foo:(NSString*)x;
という3つのメソッドがあったとして
[a foo:x];
のように呼んだとき、どのメソッドを呼べばいいかはxの型だけでなく継承関係も調べないといけない
例えばxがNSMutableStringだったらNSStringのやつを呼んでほしいだろう
NSMutableStringはNSObjectでもあるわけだがNSStringの方がより特殊なので優先度が高い
そうなるとメソッドを優先度で並べて型が該当するか上から順に調べねばなるまい
実行時のコストとして許容できるかどうか
仮にあるクラスAに
-(void)foo:(NSObject*)x;
-(void)foo:(NSNumber*)x;
-(void)foo:(NSString*)x;
という3つのメソッドがあったとして
[a foo:x];
のように呼んだとき、どのメソッドを呼べばいいかはxの型だけでなく継承関係も調べないといけない
例えばxがNSMutableStringだったらNSStringのやつを呼んでほしいだろう
NSMutableStringはNSObjectでもあるわけだがNSStringの方がより特殊なので優先度が高い
そうなるとメソッドを優先度で並べて型が該当するか上から順に調べねばなるまい
実行時のコストとして許容できるかどうか
2014/11/15(土) 15:19:15.90ID:RzrSosLr
藻舞は何をオーバーロードで、クダ巻いとるんじゃ。
普段からそんなに高品質な言語ばっかり、使っているからじゃ
JavaScriptなんか、引数の型を一々、
プログラマーがプログラミングして確かめるんだぞw
そうでないと、まともに動かんわいw
グダグダ言う前に、これくらい自分でプログラミングせえ!
普段からそんなに高品質な言語ばっかり、使っているからじゃ
JavaScriptなんか、引数の型を一々、
プログラマーがプログラミングして確かめるんだぞw
そうでないと、まともに動かんわいw
グダグダ言う前に、これくらい自分でプログラミングせえ!
2014/11/16(日) 19:14:57.26ID:PTffpO77
基本的にObjective-Cは
クラスはロボットで「これやれ」って命令すれば勝手にやってくれる
もしわかんないことがあったら「なにができるんだ?」って聞けば
「これができますギチギチ」って答えてくれる
そういう風じゃないと命令者に複雑さが伝播してオブジェクト単位で弄れないだろ?
っていうオブジェクト指向の思想理念に忠実だからな…
クラスはロボットで「これやれ」って命令すれば勝手にやってくれる
もしわかんないことがあったら「なにができるんだ?」って聞けば
「これができますギチギチ」って答えてくれる
そういう風じゃないと命令者に複雑さが伝播してオブジェクト単位で弄れないだろ?
っていうオブジェクト指向の思想理念に忠実だからな…
2014/11/16(日) 19:35:21.60ID:4B0DOTZq
Objective-C、やはり素晴らしいじゃないか
2014/11/16(日) 20:32:06.09ID:y1asw4VY
Objective-CやSmalltalk、Rubyの失敗によって、
そういうアラン・ケイのメッセージ送信パラダイムが間違っていたということが証明されたから
C++やJava風の静的束縛パラダイムに移行しようということでできたのがSwiftなんだけどな
そういうアラン・ケイのメッセージ送信パラダイムが間違っていたということが証明されたから
C++やJava風の静的束縛パラダイムに移行しようということでできたのがSwiftなんだけどな
2014/11/16(日) 21:25:59.70ID:jkITM5Sp
>>79
> Objective-CやSmalltalk、Rubyの失敗によって、
失敗したのはストラウストラップ流オブジェクト指向の C++
MS はコンポーネントの動的結合を実現するために COM を開発したが、
結局は対応しきれずに C# へ移行せざるをえなかった
この移行に伴う混乱が Vista 以降の度重なる開発遅延をまねいた
> C++やJava風の静的束縛パラダイムに移行しようということでできたのがSwiftなんだけどな
いや、Swift は(Objective-C と同じく)動的束縛と静的束縛のハイブリッドだよ
コンポーネント間の結合はこれまで通り(メッセージ送信パラダイムによる)動的束縛が利用される
コンポーネント内部の実装に静的束縛を用いるのもこれまでと同じだけど、違うのは
メモリ保護の無い C を捨てて安全なプログラミングを可能にした点
MS は MFC(C++) を捨てて .Net(C#) へ移行せざるを得なかった
Apple は言語を Objective-C から Swift へと移行しようとしているけど、
実行環境は Cocoa を継続して利用できている
結果を見れば、失敗したのは ストラウストラップ流オブジェクト指向の C++ なんだよ
> Objective-CやSmalltalk、Rubyの失敗によって、
失敗したのはストラウストラップ流オブジェクト指向の C++
MS はコンポーネントの動的結合を実現するために COM を開発したが、
結局は対応しきれずに C# へ移行せざるをえなかった
この移行に伴う混乱が Vista 以降の度重なる開発遅延をまねいた
> C++やJava風の静的束縛パラダイムに移行しようということでできたのがSwiftなんだけどな
いや、Swift は(Objective-C と同じく)動的束縛と静的束縛のハイブリッドだよ
コンポーネント間の結合はこれまで通り(メッセージ送信パラダイムによる)動的束縛が利用される
コンポーネント内部の実装に静的束縛を用いるのもこれまでと同じだけど、違うのは
メモリ保護の無い C を捨てて安全なプログラミングを可能にした点
MS は MFC(C++) を捨てて .Net(C#) へ移行せざるを得なかった
Apple は言語を Objective-C から Swift へと移行しようとしているけど、
実行環境は Cocoa を継続して利用できている
結果を見れば、失敗したのは ストラウストラップ流オブジェクト指向の C++ なんだよ
2014/11/16(日) 21:35:15.07ID:cjwSUl7C
>Objective-CやSmalltalk、Rubyの失敗によって、
…どれも失敗してないように見えるが…
というか、これから歴史が判断するとは思うが
C++みたいな密なコーディングを必要とするのに規約ゆるゆるの
言語で起きた混乱のせいで、規約カッチリすればイインダヨ!な
関数型が注目されてるけれど、結局密なプログラミングは
後で他人がソースを弄りにくいという根本的な問題をほっかむりしてる
っつーよりそもそも"そういうもの"として問題にもしてないようにも見えるので
遠からずまた一過性の時代の徒花として忘れられて
swiftに取り入れられてるみたいに「そういう書き方できたら便利だね」的な
過去に提唱された便利概念に落ち着いてゆくと思う。
…どれも失敗してないように見えるが…
というか、これから歴史が判断するとは思うが
C++みたいな密なコーディングを必要とするのに規約ゆるゆるの
言語で起きた混乱のせいで、規約カッチリすればイインダヨ!な
関数型が注目されてるけれど、結局密なプログラミングは
後で他人がソースを弄りにくいという根本的な問題をほっかむりしてる
っつーよりそもそも"そういうもの"として問題にもしてないようにも見えるので
遠からずまた一過性の時代の徒花として忘れられて
swiftに取り入れられてるみたいに「そういう書き方できたら便利だね」的な
過去に提唱された便利概念に落ち着いてゆくと思う。
2014/11/17(月) 00:12:14.50ID:ZeG9cYbU
blocksやgcの件からわかるようにObjective-Cが古臭く拡張しづらくなったのと、
静的言語の方がリファクタリングツール等のIDE連携ツールを作りやすいから移行し
ただけだと思う。
静的言語の方がリファクタリングツール等のIDE連携ツールを作りやすいから移行し
ただけだと思う。
2014/11/17(月) 02:45:35.45ID:cESIq0Cd
> というか、これから歴史が判断するとは思うがC++みたいな密なコーディングを必要とするのに規約ゆるゆるの言語で起きた混乱のせいで、規約カッチリ
> すればイインダヨ!な関数型が注目されてるけれど、結局密なプログラミングは後で他人がソースを弄りにくいという根本的な問題をほっかむりしてるっ
> つーよりそもそも"そういうもの"として問題にもしてないようにも見えるので遠からずまた一過性の時代の徒花として忘れられてswiftに取り入れられてる
> みたいに「そういう書き方できたら便利だね」的な過去に提唱された便利概念に落ち着いてゆくと思う。
これで一文
> すればイインダヨ!な関数型が注目されてるけれど、結局密なプログラミングは後で他人がソースを弄りにくいという根本的な問題をほっかむりしてるっ
> つーよりそもそも"そういうもの"として問題にもしてないようにも見えるので遠からずまた一過性の時代の徒花として忘れられてswiftに取り入れられてる
> みたいに「そういう書き方できたら便利だね」的な過去に提唱された便利概念に落ち着いてゆくと思う。
これで一文
2014/11/17(月) 04:06:46.80ID:mzmuQz/D
パラダイムと規約に関係があるとは知らなかったよ
2014/11/17(月) 08:16:03.02ID:zHATB9tj
>>82
GCは よりな ARC が現れたから単に消えただけだじゃね
System Preferences PaneがGC必須だったようにARC出るまではGC推すつもりあったかと
BlocksだっていろいろBlocksバージョンのメソッド付け加えているように、また、新しいメソッドはBlocksのみだったりでBlocksは推してはいるだろ
拡張しづらくなったのではなく、ちゃんぽん/カオス度がだろう
GCは よりな ARC が現れたから単に消えただけだじゃね
System Preferences PaneがGC必須だったようにARC出るまではGC推すつもりあったかと
BlocksだっていろいろBlocksバージョンのメソッド付け加えているように、また、新しいメソッドはBlocksのみだったりでBlocksは推してはいるだろ
拡張しづらくなったのではなく、ちゃんぽん/カオス度がだろう
2014/11/17(月) 16:59:55.46ID:oWS5dSpx
2014/11/17(月) 17:27:43.93ID:3Q29PYZj
「あまり強い言葉を遣うなよ、弱く見えるぞ。」
2014/11/17(月) 17:35:24.26ID:zHATB9tj
>>86
お前の程度に合わせて書いてあげることもできるが、お前の程度がわからないのでなあ。すまんな
お前の程度に合わせて書いてあげることもできるが、お前の程度がわからないのでなあ。すまんな
2014/11/17(月) 17:37:36.18ID:YUWmI/Qt
エンジニアになりたいと言う人(若い女の子)が面接に来ていたので話を立ち聞きした
どんな分野やりたいのか聴かれてweb系のエンジニアと言ってたが
どんな勉強してきたのかという問いにはC/C++をやりましたと
なぜC/C++なの?と聞かれて
色んな言語の基礎になる言語だからだと教えてもらったので・・・
と答えていた
面接してる会社はデザイン会社だった
どんな分野やりたいのか聴かれてweb系のエンジニアと言ってたが
どんな勉強してきたのかという問いにはC/C++をやりましたと
なぜC/C++なの?と聞かれて
色んな言語の基礎になる言語だからだと教えてもらったので・・・
と答えていた
面接してる会社はデザイン会社だった
2014/11/17(月) 19:21:26.75ID:JwoO3TSc
ID が Qt
2014/11/17(月) 19:37:02.05ID:kiWqo9or
QtはライセンスがGPLだから駄目
2014/11/18(火) 08:24:29.44ID:kE9ttoYj
2014/11/18(火) 09:48:40.84ID:vZbeIuzJ
>>92
頭が―か?
頭が―か?
2014/11/19(水) 00:25:30.52ID:Uu5NHBSW
医療プログラマーが超高難易度の免許制に / フリーソフトやオープンソースの無作為配布も全面禁止
http://fox.2ch.net/test/read.cgi/poverty/1416286592/
http://fox.2ch.net/test/read.cgi/poverty/1416286592/
2014/11/19(水) 12:35:17.12ID:JZ2oYyd9
>>89
gccですか?VCですかそれともObjective-Cですか?と聞かなかった会社が糞
gccですか?VCですかそれともObjective-Cですか?と聞かなかった会社が糞
96デフォルトの名無しさん
2014/12/01(月) 22:56:51.54ID:m0wFwcIO Objective-CをCocoa以外で活用してるケースってあるのかね
2014/12/06(土) 17:27:29.67ID:0UG7+0Oi
Effective Objective-C 2.0
2014/12/06(土) 17:27:59.31ID:0UG7+0Oi
とかいつの間にか出てたみたいだが、内容はどうなのかね
99デフォルトの名無しさん
2014/12/21(日) 03:29:15.03ID:B0izS0B+ H
100デフォルトの名無しさん
2014/12/24(水) 22:47:32.30ID:CYbjoPN5101デフォルトの名無しさん
2014/12/24(水) 22:49:51.21ID:CYbjoPN5 何このスレ、ほかのやつも馬鹿ばっかじゃん。
Objective-Cはもうオシマイだな。
Objective-Cはもうオシマイだな。
102デフォルトの名無しさん
2014/12/24(水) 23:22:36.71ID:w/c96Wtd >>100
どうした急に…。
どうした急に…。
103デフォルトの名無しさん
2014/12/24(水) 23:37:50.82ID:EVdPtiwJ マジキチには触れない
104デフォルトの名無しさん
2014/12/27(土) 00:50:33.94ID:ju+a0CQP はじめて書き込みします。
自学の一貫としてpaizaのラーニング「数の並び替え」に挑戦しています。
「改行区切りで正の整数nがi個入力されるので小さい順に改行区切りで出力してください。」という問題です。しかし解けません。
数値を取得→配列に入れる→ソートする→同じ数値があれば削除→表示
という流れですすもうとしていましたが、うまくいきません。
できたこと
→入力値をNSNumberに変換してNSMutableArrayに入れ込む。
→昇順ソート(ソートのメソッドを使用)
できないこと
→改行入力を判定し、for文から抜けること(配列の要素数取得)
→隣り合った要素を比較し、イコールだった場合は表示しないこと
見本になるような答えがあればと思うのですが、プログラマーの皆さんはどのようにコーディングされるのでしょうか?
教えていただけたら嬉しいです。
自学の一貫としてpaizaのラーニング「数の並び替え」に挑戦しています。
「改行区切りで正の整数nがi個入力されるので小さい順に改行区切りで出力してください。」という問題です。しかし解けません。
数値を取得→配列に入れる→ソートする→同じ数値があれば削除→表示
という流れですすもうとしていましたが、うまくいきません。
できたこと
→入力値をNSNumberに変換してNSMutableArrayに入れ込む。
→昇順ソート(ソートのメソッドを使用)
できないこと
→改行入力を判定し、for文から抜けること(配列の要素数取得)
→隣り合った要素を比較し、イコールだった場合は表示しないこと
見本になるような答えがあればと思うのですが、プログラマーの皆さんはどのようにコーディングされるのでしょうか?
教えていただけたら嬉しいです。
105104
2014/12/27(土) 00:53:20.66ID:ju+a0CQP ちなみに、現在はこんなかんじで書いています。
(for文のところの回数は適当な数です)
#import <Foundation/Foundation.h>
int main(void){
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSMutableArray *array = [NSMutableArray array];
//getData
for(int i=0;i<7;i++){
int n;
scanf("%d",&n);
NSNumber *num = [NSNumber numberWithInt:n];
[array addObject:num];
}
//sort
array = [array sortedArrayUsingSelector:@selector(compare:)];
for(int p=1 ; p<7 ;p++){
NSNumber *arraynum1 = [array objectAtIndex:p-1];
NSNumber *arraynum2 = [array objectAtIndex:p];
if([arraynum1 intValue] == [arraynum2 intValue]){
printf("test====%d",[arraynum1 intValue]);
}}
for(int i=0; i<6;i++){
NSNumber *resultNum = [array objectAtIndex:i];
NSString *s = [NSString stringWithFormat:@"%d\n",[resultNum intValue]];
[[NSFileHandle fileHandleWithStandardOutput] writeData: [s dataUsingEncoding: NSUTF8StringEncoding]];}
[pool release];
return 0;
}
(for文のところの回数は適当な数です)
#import <Foundation/Foundation.h>
int main(void){
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSMutableArray *array = [NSMutableArray array];
//getData
for(int i=0;i<7;i++){
int n;
scanf("%d",&n);
NSNumber *num = [NSNumber numberWithInt:n];
[array addObject:num];
}
//sort
array = [array sortedArrayUsingSelector:@selector(compare:)];
for(int p=1 ; p<7 ;p++){
NSNumber *arraynum1 = [array objectAtIndex:p-1];
NSNumber *arraynum2 = [array objectAtIndex:p];
if([arraynum1 intValue] == [arraynum2 intValue]){
printf("test====%d",[arraynum1 intValue]);
}}
for(int i=0; i<6;i++){
NSNumber *resultNum = [array objectAtIndex:i];
NSString *s = [NSString stringWithFormat:@"%d\n",[resultNum intValue]];
[[NSFileHandle fileHandleWithStandardOutput] writeData: [s dataUsingEncoding: NSUTF8StringEncoding]];}
[pool release];
return 0;
}
106デフォルトの名無しさん
2014/12/27(土) 01:41:52.96ID:kBwj7yl6107デフォルトの名無しさん
2014/12/27(土) 01:46:46.53ID:kBwj7yl6 reverseObjectEnumeratorいらなかった
というか降順と昇順を逆に覚えていた
というか降順と昇順を逆に覚えていた
108デフォルトの名無しさん
2014/12/27(土) 02:34:15.99ID:pJ1SHZUQ 二分探索は速いだけじゃなく、外れの場合はインサートポイントが得られるという、かなりお手軽で二倍お得。自分で二分探索を書いても
for(int i=0;i<7;i++){
int n;
scanf("%d",&n);
const NSInteger count = array.count;
NSNumber *newNumber = @(n);
NSUInteger index = [array indexOfObject:newNumber inSortedRange:NSMakeRange(0, count) options:(NSBinarySearchingInsertionIndex) usingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2];
}];
if(index < count && ((NSNumber *)array[index]).intValue == n)
;
else
[array insertObject:newNumber atIndex:index];
}
for(int i=0;i<7;i++){
int n;
scanf("%d",&n);
const NSInteger count = array.count;
NSNumber *newNumber = @(n);
NSUInteger index = [array indexOfObject:newNumber inSortedRange:NSMakeRange(0, count) options:(NSBinarySearchingInsertionIndex) usingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2];
}];
if(index < count && ((NSNumber *)array[index]).intValue == n)
;
else
[array insertObject:newNumber atIndex:index];
}
109デフォルトの名無しさん
2014/12/28(日) 01:32:41.16ID:t3FnsveB そんなのNSなんたらやってないでc++で書きゃいいじゃん
110デフォルトの名無しさん
2014/12/28(日) 02:21:54.56ID:9eiZ+Gka ここになんだから Objective-C でやる/の勉強でということだろ
頓珍漢なことを言い出さんな
頓珍漢なことを言い出さんな
111デフォルトの名無しさん
2014/12/29(月) 08:59:18.53ID:Z4v1tAUQ 素朴な疑問だけど、「言い出さんな」って何の書き間違い?
それともそんな言い回しがあるの? それならどんな意味?
それともそんな言い回しがあるの? それならどんな意味?
112デフォルトの名無しさん
2014/12/29(月) 10:01:01.25ID:0b80RVUG 言いなさんな
だろ
だろ
113デフォルトの名無しさん
2014/12/29(月) 10:02:24.88ID:UGzXTa7o 言いなさんな
あるいは
言い出しなさんな
だと思う
あるいは
言い出しなさんな
だと思う
114デフォルトの名無しさん
2014/12/29(月) 11:16:33.80ID:/fu+2Q3X 2ちゃんの住民ってアスペが多いのか
ときどき日本語の文章の意味を取り違って
真逆のレス返すひととかいるよね
ときどき日本語の文章の意味を取り違って
真逆のレス返すひととかいるよね
115デフォルトの名無しさん
2014/12/29(月) 17:32:40.50ID:0o73V2FG よく見るが自分がそうでないとも言い切れないのであまりつっこまないようにしている
116デフォルトの名無しさん
2015/01/03(土) 22:27:31.84ID:/eH07gY4 あけおめ?
117デフォルトの名無しさん
2015/02/03(火) 10:52:02.28ID:rDBGcWBx Object-Cってカプセル化できないのか、しても意味ないようなことが書いてあったけど
ttp://news.mynavi.jp/column/objc/031/
・どんなクラスでも性質を変えられる。
・どんなフィールド名も追ってけばクラス名から参照できちゃう。
なら、暗証番号とか保持してるクラスを見つけてprivate/protectをpublicに変えちゃえば中見えるんじゃね?
秘匿したいプロパティを隠す方法を教えてください。
ttp://news.mynavi.jp/column/objc/031/
・どんなクラスでも性質を変えられる。
・どんなフィールド名も追ってけばクラス名から参照できちゃう。
なら、暗証番号とか保持してるクラスを見つけてprivate/protectをpublicに変えちゃえば中見えるんじゃね?
秘匿したいプロパティを隠す方法を教えてください。
118デフォルトの名無しさん
2015/02/03(火) 11:07:05.38ID:tOi9MMpi 関数内にstaticで定義すればivarListにも出ないかな。
119デフォルトの名無しさん
2015/02/03(火) 22:01:35.92ID:tKBD0v6T novocaineって分かる人います?
120デフォルトの名無しさん
2015/02/04(水) 11:48:21.24ID:kErMECZ6 javascript も Ruby も Python も_
121デフォルトの名無しさん
2015/02/08(日) 10:15:33.41ID:pR6nMOCQ >>118
でもそれだと暗証番号とか生成して秘匿するのには使えないよね?
特にコンパイル前に暗証番号分かってるような特注PGじゃなくて汎用なのだと。
関数内static変数をキーに使って加工した暗証番号を変数として保持するとかなのかな。
これならクラスに付けてないゲッターでプロパティが知れて漏れても
メソッドで加工してるから大丈夫とか。
そしてそのメソッドでは合ってるかどうかだけ返すようにすれば推測しづらいかな?
でもそれだと暗証番号とか生成して秘匿するのには使えないよね?
特にコンパイル前に暗証番号分かってるような特注PGじゃなくて汎用なのだと。
関数内static変数をキーに使って加工した暗証番号を変数として保持するとかなのかな。
これならクラスに付けてないゲッターでプロパティが知れて漏れても
メソッドで加工してるから大丈夫とか。
そしてそのメソッドでは合ってるかどうかだけ返すようにすれば推測しづらいかな?
122デフォルトの名無しさん
2015/02/08(日) 11:12:28.61ID:HJEgExkV >>121
要はIvarにしなければクラスの外からは見えないということで、
関数をsetter/getter兼用にして、その中で変数を宣言すればどうかと。
int cryptoNumber(int mode, int value)
{
static int local = 0;
//0:setter, 1:getter
switch (mode) {
case 0: local = value; break;
default: break;
}
return local;
}
まあ、関数のスコープ外からは見えないってだけだが。
要はIvarにしなければクラスの外からは見えないということで、
関数をsetter/getter兼用にして、その中で変数を宣言すればどうかと。
int cryptoNumber(int mode, int value)
{
static int local = 0;
//0:setter, 1:getter
switch (mode) {
case 0: local = value; break;
default: break;
}
return local;
}
まあ、関数のスコープ外からは見えないってだけだが。
123デフォルトの名無しさん
2015/02/08(日) 12:27:24.17ID:pR6nMOCQ でもその引数valueはどこかのクラス内で
何らかのプロパティとして保持されてる値が引き渡されてるわけだろ?
Object-Cは完全なるOPPなんだから最終的にはどこかしらのプロパティが保持して
それは漏れなくIvarで引用されちゃうよね?
何らかのプロパティとして保持されてる値が引き渡されてるわけだろ?
Object-Cは完全なるOPPなんだから最終的にはどこかしらのプロパティが保持して
それは漏れなくIvarで引用されちゃうよね?
124デフォルトの名無しさん
2015/02/08(日) 12:43:20.66ID:HJEgExkV 保持するのはあくまで関数内のlocalのみだよ。
そしてセット/ゲットできるのもその関数を定義したクラス内のみ。(関数もstatic)
その値をどう生成してどう使うかにもよるし、どのレベルで隠蔽するかって事でもある。
そしてセット/ゲットできるのもその関数を定義したクラス内のみ。(関数もstatic)
その値をどう生成してどう使うかにもよるし、どのレベルで隠蔽するかって事でもある。
125デフォルトの名無しさん
2015/02/08(日) 12:46:03.85ID:pR6nMOCQ あとコメントアウトしてても
//0:setter, 1:getter
はマジックナンバーになりそうな。。。
int cryptoNumber(int mode, int value)
{
const int getter = 1;
const int setter = 9;
static int local = 5;
switch (mode) {
case setter: local = value; break;
case getter: break;
default: return null;
}
return local;
}
デフォルトはエラー処理な。
//0:setter, 1:getter
はマジックナンバーになりそうな。。。
int cryptoNumber(int mode, int value)
{
const int getter = 1;
const int setter = 9;
static int local = 5;
switch (mode) {
case setter: local = value; break;
case getter: break;
default: return null;
}
return local;
}
デフォルトはエラー処理な。
126デフォルトの名無しさん
2015/02/08(日) 12:53:54.58ID:pR6nMOCQ >>124
それだと全然Object-Cっぽくないよね?
実質Cじゃん。
Object-Cでどうやってカプセル化もどきをするかってことだから。
クラスになったらばれる。
>関数もstatic
だからObject-Cはメソッド(関数)名が分かればstaticをpublicに上書きできるんだって。
それだと全然Object-Cっぽくないよね?
実質Cじゃん。
Object-Cでどうやってカプセル化もどきをするかってことだから。
クラスになったらばれる。
>関数もstatic
だからObject-Cはメソッド(関数)名が分かればstaticをpublicに上書きできるんだって。
127デフォルトの名無しさん
2015/02/08(日) 13:05:35.56ID:HJEgExkV そりゃObjective-Cで完全な隠蔽は無理よw Ivarとかメソッドにした時点で見えるんだから。
必要ならCで書けばいいし、書けるのがObj-Cのメリットでもあると思うし、
どういう目的でその変数を使うかわからんけど、
例えばその関数にセッターと照合の機能を持たせれば、関数外へ値を出す事も無くなる。
typedef enum {
CryptoNumber_Mode_Set,
CryptoNumber_Mode_Compare
} CryptoNumber_Mode;
BOOL cryptoNumber(CryptoNumber_Mode mode, int ivalue) {….}
必要ならCで書けばいいし、書けるのがObj-Cのメリットでもあると思うし、
どういう目的でその変数を使うかわからんけど、
例えばその関数にセッターと照合の機能を持たせれば、関数外へ値を出す事も無くなる。
typedef enum {
CryptoNumber_Mode_Set,
CryptoNumber_Mode_Compare
} CryptoNumber_Mode;
BOOL cryptoNumber(CryptoNumber_Mode mode, int ivalue) {….}
128デフォルトの名無しさん
2015/02/08(日) 13:20:42.38ID:HJEgExkV っていうか、Obj_Cは「C+オブジェクトシステム」って、そこの記事に書いてなかったっけ。
129デフォルトの名無しさん
2015/02/08(日) 13:39:05.07ID:wyLER5GX Objective-Cで完全な隠蔽って無理じゃ無い?
そのためにiOSデバイスは他人のコードをデバッガ起動させてないんじゃないの?
牢破りで台無しだけど
そのためにiOSデバイスは他人のコードをデバッガ起動させてないんじゃないの?
牢破りで台無しだけど
130デフォルトの名無しさん
2015/02/10(火) 01:18:01.12ID:YlSr2a8D 質問です。
自分はARCから入って、最近MRCの存在を知ったのですが
MRCしか無かった頃には、弱い参照をどのように処理していたのでしょうか?
assignは単に参照を保持するだけ…と言うことは、所有者が居なくなってもnilにならず
retainカウントがゼロ=破棄されて内容が保証できないメモリ、を参照してしまう可能性がありますよね…?
自分はARCから入って、最近MRCの存在を知ったのですが
MRCしか無かった頃には、弱い参照をどのように処理していたのでしょうか?
assignは単に参照を保持するだけ…と言うことは、所有者が居なくなってもnilにならず
retainカウントがゼロ=破棄されて内容が保証できないメモリ、を参照してしまう可能性がありますよね…?
131デフォルトの名無しさん
2015/02/10(火) 01:36:50.93ID:kXovpB1O >>130
運を天に任せてた。
ってか、weakは基本的には循環retainを防ぐためのものなので、親が消されたら子も消されるような状況なら、親→子はretain(strong)、子→親はassignで問題ない。
(親以外に子をretainしてる奴がいると問題だけど…。)
運を天に任せてた。
ってか、weakは基本的には循環retainを防ぐためのものなので、親が消されたら子も消されるような状況なら、親→子はretain(strong)、子→親はassignで問題ない。
(親以外に子をretainしてる奴がいると問題だけど…。)
132デフォルトの名無しさん
2015/02/10(火) 04:43:34.61ID:aT+wxLBo nonnull, nullable, null_resettable, null_unspecified が来ましたで
Cocoa/Cocoa Touch全部そうするのかなあ
Cocoa/Cocoa Touch全部そうするのかなあ
133デフォルトの名無しさん
2015/02/10(火) 05:48:15.38ID:YlSr2a8D134デフォルトの名無しさん
2015/02/10(火) 18:26:56.21ID:3nLl+ggX nonnull, nullable, null_unspecified 修飾子が加わったね
135デフォルトの名無しさん
2015/02/11(水) 04:09:33.71ID:IVeIu2if136デフォルトの名無しさん
2015/02/13(金) 08:06:29.09ID:9pkMuWgM 想像だけどswiftの⁉︎に相当するんじゃないの?
137デフォルトの名無しさん
2015/03/04(水) 23:55:50.26ID:IuCQE56I Twitterクライアント作りたくてAFNetworkingとSimpleauth導入した
JSONのGETまでは出来るんだけどそこからtable viewに表示させる方法がわからない....
NSDictionaryとか配列とか使うのは知ってるんだけど調べても書き方が.....
JSONのGETまでは出来るんだけどそこからtable viewに表示させる方法がわからない....
NSDictionaryとか配列とか使うのは知ってるんだけど調べても書き方が.....
138デフォルトの名無しさん
2015/03/05(木) 00:08:35.68ID:U/1KqdAB139デフォルトの名無しさん
2015/03/08(日) 19:28:12.30ID:HPLKgVu5 超古いコードをYosemite対応に書き換え中。
NSCalendarDateを置き換えしてたんだが、
なんだか凄く面倒くさい書き方になったんだな。
一々プロパティ叩かないと使えないNSCalendarとか
NSDateFormatterとか、行数増えまくり。
Fomatterが遅いのはホント酷いな。
もう少しコンビニエンスなメソッド用意して
欲しい。
NSCalendarDateを置き換えしてたんだが、
なんだか凄く面倒くさい書き方になったんだな。
一々プロパティ叩かないと使えないNSCalendarとか
NSDateFormatterとか、行数増えまくり。
Fomatterが遅いのはホント酷いな。
もう少しコンビニエンスなメソッド用意して
欲しい。
140デフォルトの名無しさん
2015/03/08(日) 19:33:54.16ID:CC8CPwGl 自分で追加すればええやん?
Fomatterが遅いのは対処の仕方がいくつかはあるし、ずっと前から遅いことだろう
まあ、NSDate <-> 文字列もしくは分解は所見ではげげっというほど面倒に見えるだろうけど
Fomatterが遅いのは対処の仕方がいくつかはあるし、ずっと前から遅いことだろう
まあ、NSDate <-> 文字列もしくは分解は所見ではげげっというほど面倒に見えるだろうけど
141デフォルトの名無しさん
2015/03/08(日) 20:10:13.17ID:WTSZ2xfx ハゲゲッに見えて困惑した
142デフォルトの名無しさん
2015/03/11(水) 08:11:20.24ID:s1uWJrZ7 Table viewにcell作ってUIText view配置してTwitterクライアント作ったんだが、下にスクロールしてくとだんだん表示が重なってきてバグってしまう
同じ事起きた人解決方法知ってたら教えてください
同じ事起きた人解決方法知ってたら教えてください
143デフォルトの名無しさん
2015/03/12(木) 01:19:13.06ID:nNmLNiHn144デフォルトの名無しさん
2015/03/16(月) 18:10:31.38ID:BqfOZ60v WikipediaにObj-CのランタイムがCで書かれてるって書いてるんだけど
誰もやらないような面倒臭いことをすればCの記述のみでObj-Cが書けるのか?
誰もやらないような面倒臭いことをすればCの記述のみでObj-Cが書けるのか?
145デフォルトの名無しさん
2015/03/16(月) 19:05:41.37ID:Nv6mM3KY 人間業じゃないと思うけど書こうと思えば書けるな
146デフォルトの名無しさん
2015/03/16(月) 22:23:57.89ID:dCO+oU4w @〜とか[ ]とかはコンパイラをごにょごにょ必要だべ。
147デフォルトの名無しさん
2015/03/16(月) 22:44:42.95ID:Nv6mM3KY いや、それも無しのCの記述のみってことなんじゃね
148デフォルトの名無しさん
2015/03/16(月) 23:26:06.83ID:dCO+oU4w Obj-Cというより、CでOOPってことやね。かなりの事はできるだろ。
blocksとかprotocolは無いけど、observer, target/actionはできるし、
構造体にretainCount持たせてコンストラクタ/デストラクタ関数を書けばMRCっぽくなるんじゃね?
blocksとかprotocolは無いけど、observer, target/actionはできるし、
構造体にretainCount持たせてコンストラクタ/デストラクタ関数を書けばMRCっぽくなるんじゃね?
149デフォルトの名無しさん
2015/03/16(月) 23:55:29.64ID:BqfOZ60v Cで書かれたObj-Cのランタイム関数群を使って
Cの記述のみで実質Obj-Cとしてプログラミングするのは可能か
という質問だった
分かりづらくてスマソ
当然だけどARCではなくMRCで
Cの記述のみで実質Obj-Cとしてプログラミングするのは可能か
という質問だった
分かりづらくてスマソ
当然だけどARCではなくMRCで
150デフォルトの名無しさん
2015/03/17(火) 00:07:00.89ID:c3ZGZmTn 逆にObj-Cと言っても、Cから拡張された特有の部分(@〜とか[ ]とか)以外はCだよ。
だからCのみの記述だと、上の特有の部分が使えないって事になるかな。
その意味では、実質Obj-Cではなく実質Cでプログラミングする事は可能。
だからCのみの記述だと、上の特有の部分が使えないって事になるかな。
その意味では、実質Obj-Cではなく実質Cでプログラミングする事は可能。
151デフォルトの名無しさん
2015/03/17(火) 00:26:31.31ID:XaFY+4CG そういう意味で、Objective-Cって、日本語の文字の特性にピッタリ相当するよね。
C++が、漢字だけ使う状況を維持しつつ、時代に合わせて全体を改良していった簡体字のポジションに符合する。
一方、かな漢字のモザイクミックスによって、外来語に合わせた柔軟性と、前方互換性の絶妙のバランスの日本語というObjective-C。
C系統のレガシー部分(漢字文化)自体を捨ててしまって、新しく文字体系を作り直してしまったハングルはSwiftみたいなもんかな。
C++が、漢字だけ使う状況を維持しつつ、時代に合わせて全体を改良していった簡体字のポジションに符合する。
一方、かな漢字のモザイクミックスによって、外来語に合わせた柔軟性と、前方互換性の絶妙のバランスの日本語というObjective-C。
C系統のレガシー部分(漢字文化)自体を捨ててしまって、新しく文字体系を作り直してしまったハングルはSwiftみたいなもんかな。
152デフォルトの名無しさん
2015/03/17(火) 00:28:23.92ID:hphSATZF >>149
純粋なCでObjective-Cオブジェクトを扱うのは全く問題なく可能
新しいクラスのObjective-Cオブジェクトを作るのも構造体でしかないから、とてもがんばれば可能
Objevtive-Cは元々Cのプリプロセッサでしかなく、現在のclangでもObjective-CからCソースを生成できたはず
純粋なCでObjective-Cオブジェクトを扱うのは全く問題なく可能
新しいクラスのObjective-Cオブジェクトを作るのも構造体でしかないから、とてもがんばれば可能
Objevtive-Cは元々Cのプリプロセッサでしかなく、現在のclangでもObjective-CからCソースを生成できたはず
153デフォルトの名無しさん
2015/03/17(火) 01:01:26.34ID:nOSd0QwC154デフォルトの名無しさん
2015/03/17(火) 01:37:20.90ID:qWCLUX9n 調べるなら、RubyCocoaやFreePascalのObjective-C互換機能あたりがいいかも
C++のクラスは他言語から使う事はほぼ不可能だけど、ObjCは割と楽勝
C++のクラスは他言語から使う事はほぼ不可能だけど、ObjCは割と楽勝
155デフォルトの名無しさん
2015/03/17(火) 02:09:39.21ID:9PxdASsP #import <objc/runtime.h>
見れば色々出来ることが分かる。
見れば色々出来ることが分かる。
156デフォルトの名無しさん
2015/03/17(火) 04:25:54.29ID:k/LbPUX+ ttp://news.mynavi.jp/column/objc/
ここの連載とかもmessage送信の仕組みとかの解説が気楽に読める
ここの連載とかもmessage送信の仕組みとかの解説が気楽に読める
157デフォルトの名無しさん
2015/03/17(火) 08:19:09.18ID:EJu+JoaD158デフォルトの名無しさん
2015/03/17(火) 20:25:47.35ID:YX0UjXZ+ Smalltalkに寄せてしまえば良かったのに。
有名なSmalltalkの処理系Smalltalk/Xみたいに遅い部分だけC言語を
インラインで書く。
有名なSmalltalkの処理系Smalltalk/Xみたいに遅い部分だけC言語を
インラインで書く。
159デフォルトの名無しさん
2015/04/16(木) 15:08:50.01ID:o308Ymfa Textured Windowの上にカスタムビューを置いたときに
そのカスタムビューがドラッグされたときwindowが移動しないようにしたいのですが。
カスタムビューの中にカーゾルが入ったら
setMovableByWindowBackground:NO
にしてカーソルが出たら戻す方法以外に、方法はありますか?
試しにimageViewを置くとドラッグで移動しないので、何かありそうなのですがググっても分かりませんでした。
そのカスタムビューがドラッグされたときwindowが移動しないようにしたいのですが。
カスタムビューの中にカーゾルが入ったら
setMovableByWindowBackground:NO
にしてカーソルが出たら戻す方法以外に、方法はありますか?
試しにimageViewを置くとドラッグで移動しないので、何かありそうなのですがググっても分かりませんでした。
160デフォルトの名無しさん
2015/04/16(木) 15:17:40.05ID:o308Ymfa161Killery ◆CzYk9LSvHM
2015/04/30(木) 22:03:56.13ID:7KgGp2Xd 誰かobjective-cできる人
一緒にゲーム作りませんか?
こういうの作ってます
ttps://sourceforge.jp/projects/awarsiii/releases/
一緒にゲーム作りませんか?
こういうの作ってます
ttps://sourceforge.jp/projects/awarsiii/releases/
162デフォルトの名無しさん
2015/05/01(金) 10:29:44.06ID:XsxuvEVX いいけど一緒にって何やるの?
163デフォルトの名無しさん
2015/05/01(金) 11:59:27.42ID:7BSZ6A8A164デフォルトの名無しさん
2015/05/01(金) 15:51:02.29ID:OXJqR0q8 call そのスレ
165デフォルトの名無しさん
2015/05/01(金) 17:07:59.94ID:7BSZ6A8A >>164
ゲ製のココね
http://peace.2ch.net/test/read.cgi/gamedev/1388301393/
頑張ってるの解るんで読んでるんだけど、上にも書いたようにもちょっと自己投資して勉強するべしって思うのよね。
ゲ製のココね
http://peace.2ch.net/test/read.cgi/gamedev/1388301393/
頑張ってるの解るんで読んでるんだけど、上にも書いたようにもちょっと自己投資して勉強するべしって思うのよね。
166デフォルトの名無しさん
2015/06/19(金) 16:17:27.35ID:9hebRpBD 入門Objective-C 2.0 [第1版]
入門Objective-C 2.0 [第2版]
入門Objective-C 2.0 [第3版]
この違いって何?
入門Objective-C 2.0 [第2版]
入門Objective-C 2.0 [第3版]
この違いって何?
167デフォルトの名無しさん
2015/06/19(金) 16:34:07.70ID:Hn4vsFYs 版数
168デフォルトの名無しさん
2015/06/19(金) 18:23:40.34ID:FzphauAa 改訂じゃなければ中身一緒
169デフォルトの名無しさん
2015/06/19(金) 18:24:27.78ID:FzphauAa ああそれは
第一刷
第二刷
第三刷
のほうだったかな
第一刷
第二刷
第三刷
のほうだったかな
170デフォルトの名無しさん
2015/06/20(土) 08:34:11.31ID:6G5MNLrc >>166
間違いや足りない内容を修正、追記
間違いや足りない内容を修正、追記
171デフォルトの名無しさん
2015/06/22(月) 01:10:44.37ID:vs8WgO/1 今、framework作ってるんだが、framework in frameworkって出来ないよな?
またそのあたり詳しく書いてある書籍、サイトを教えてほしい
やりたいことはあるframeworkがプロジェクトに組み込まれていたらメソッドを使用して
なければ自frameworkのメソッドを使用するといったことをしたいんだ
またそのあたり詳しく書いてある書籍、サイトを教えてほしい
やりたいことはあるframeworkがプロジェクトに組み込まれていたらメソッドを使用して
なければ自frameworkのメソッドを使用するといったことをしたいんだ
172デフォルトの名無しさん
2015/06/22(月) 01:27:05.08ID:U3VtOrGe 別々のフレームワークにしとけばいいんじゃないの
その作りたい 自フレームワーク の設定で あるフレームワーク を Optional にして、自フレームワークのコードで あるフレームワーク(のコード) が実在するかしないか見るだけじゃないの
その作りたい 自フレームワーク の設定で あるフレームワーク を Optional にして、自フレームワークのコードで あるフレームワーク(のコード) が実在するかしないか見るだけじゃないの
173デフォルトの名無しさん
2015/06/22(月) 23:17:56.19ID:Kf0FVNH9 Objective-Cだったら、メソッドのシグネチャがあってれば実態は全く
別のクラスでも動くけど。Javaみたいにcastの例外とか飛ばないし。
別のクラスでも動くけど。Javaみたいにcastの例外とか飛ばないし。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- あぼーん
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- 【老舗文具メーカー】「生成AIで制作していた」――サクラクレパス、“AI疑惑”ポスターの調査結果を報告 ★2 [ぐれ★]
- 一人殺したい奴がいる
- __トランプ、G7に代わる「Core 5」構想、米 中 露 印 日をまとめる巨大枠組み、世界秩序の再編につながる可能性 [827565401]
- コーンポタージュに食パン浸して食うのうますぎwwwwwwwwwwwwwwwwwwwwww
- 残クレタワマン、始まるwwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 結婚したい女性声優
