Objective-C単語

20件
オブジェクティブシー
1.4千文字の記事
  • 3
  • 0pt
掲示板へ

Objective-Cとは、C言語ベースSmalltalk言オブジェクト指向を取り入れた言である。

概要

開発者はBrad CoxとTom LoveC言語の上にSmalltalkインタプリタを乗っけただけという、非常に直球な設計をしている。C同様気をつけないと危ない言なのだが、変に煩雑な安全装置を付けるよりは、これぐらい割りきった作りの方がいいのかもしれない。分かって使う分にはとても便利なので、ハックのある人には割と好かれている。

二人はこれで言ベンチャーを立ち上げるも、大ヒットしたという話は特にないよう。そのまま行けば埋もれた言で終ったのだろうが、新企業NeXTライセンスを取った事で、潜在の高さだけは世に普く知られるようになった。

NeXTAppleに買収された後は、Carbonに代わってMacintoshMac OS X)のCocoaiPhone OS(現:iOS)のCocoa Touchフレームワークとして使われている。なんというか、20年遅れてが来た感じである。

C言語上位互換なのでC言語的な記述も許されている。オブジェクトシステムが動的であることが特徴。「Objective」な部分は向き不向きがかなりハッキリしており、大まかな内容をざっくり書くには非常に便利な反面、細かいチューニングを行うにはパフォーマンス的にも記法的にも全く向かない。そういう部分はCかC++で書いて「Objectiveなグルー」を書くのがスタイルである。ヘンテコな最適化技法も多く、ハマると結構が深かったりする。プログラマに出来ることは制限しない!

最近Objective-C2.0として近代化し、ガベージコレクションが付いたりC#プロパティが付いたりした。
でもiPhone OSではリソース制限が厳しいのでAutorelease解放をする。

最新版ではAutomatic Reference Countingという怪しさ満点の拡が施され、参照カウントなんだけどGCチック(でも命名規約は守ってね!)な変態に。それどころか10.8でガベージコレクション止されるという斜め上の展開である(そんな言Objective-Cだけだろう)。Appleコンパイラに投資した結果がこれだよ

CocoaとInterface Builderを使ったHello world

AppController.h

#import <Cocoa/Cocoa.h>

@interface AppController : NSObject
{
IBOutlet id textField;
}
- (IBAction)setHello:(id)sender;
@end

AppController.m

#import "AppController.h"

@implementation AppController

- (IBAction)setHello:(id)sender
{
[textField setStringValue:@"Hello, world!"];
}
@end

Interface BuilderではNSButtonをAppControllerアクションに接続、NSTextFieldAppControllertextFieldアウトレットに接続

関連項目

【スポンサーリンク】

  • 3
  • 0pt
記事編集 編集履歴を閲覧

ニコニ広告で宣伝された記事

まちカドまぞく (単) 記事と一緒に動画もおすすめ!
提供: popopoi
もっと見る

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

Objective-C

10 ななしのよっしん
2014/06/22(日) 09:51:03 ID: 0JgcOuD6pZ
swiftが登場したけど、知識がないから記事に書けない
だれか記載願う
👍
高評価
0
👎
低評価
0
11 ななしのよっしん
2015/12/23(水) 13:07:10 ID: JmXmy2oVe0
ユーザーには寄り添ってもプログラマには寄り添わなかったため、DirectXVisualC++の攻勢の前にゴミ箱と化した往年のMac
今のMacOSがそれの反省点を踏まえているかは人によって意見の分かれるところだろう
👍
高評価
0
👎
低評価
0
12 ななしのよっしん
2016/08/18(木) 05:24:18 ID: 1t3K6+DzXK
ARMUnicodeLLVMClangOpenCLObjective-Cmp4Webkitタイプするのも疲れる…
プログラマに寄り添った結果、アップルオープンソース界を中心にマイクロソフトGoogleけらに見えるほどの貢献を果たしているんだよなあ
Appleがいなかったら、MSのグラ分野は5年遅れていたし(QuickTime裁判と資援助のバーターの件)
ソフトバンクに買収されたARM社やGoogleAndroidに至っては、存在すらしないんやでえ情弱
👍
高評価
0
👎
低評価
0
13 ななしのよっしん
2016/08/18(木) 05:33:05 ID: 1t3K6+DzXK
ああHTML5もか…
👍
高評価
0
👎
低評価
0
14 ななしのよっしん
2021/07/01(木) 23:09:31 ID: f2h8q8QYbe
Objective-Cプログラマに寄り添ったなら何で今やObjective-Cはこんな嫌われ言なんですかね・・・
2016年時点ではどうだったのかは知らないけど
👍
高評価
0
👎
低評価
0
15 ななしのよっしん
2021/12/21(火) 20:46:07 ID: f2h8q8QYbe
現場に立ってみればわかるけどObjective-CiOSエンジニア自身からもだいぶ嫌われてるから。
完璧」「何一つ駄がない」と評されるC#とは対照的に。
Stack Overflowがやってる嫌われプログラミング言語の調では見事上位にランクインしてるし。
https://insights.stackoverflow.com/survey/2017#most-loved-dreaded-and-wantedexit
https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wantedexit
👍
高評価
0
👎
低評価
0
16 ななしのよっしん
2022/05/20(金) 01:21:14 ID: f2h8q8QYbe
ガベージコレクションが導入された時に、循環参照対策として弱い参照用の宣言構文が大々的に追加されたけど、
じゃあその前はどうやって循環参照を回避してたのかというと…

回避できなかったんだなー、これが。

そう、ガベージコレクション導入前のアプリは全部メモリリークの問題を潜在的に抱えてたんだよ。
Apple過去アプリの互換性を容赦なく断ち切る理由の1つはこれ。「欠陥言開発させてました」なんて言えないからアーキテクチャだのスペックだの言い訳にして動作不能にさせてる訳だ。
👍
高評価
0
👎
低評価
0
17 ななしのよっしん
2022/12/27(火) 16:02:41 ID: f2h8q8QYbe
ジェネリクスや関数C#では大昔にできたことがObjective-Cでできるようになったのは何年後だって話だ。
タプルNullable、async/awaitに至ってはついにSwiftにならないとできなかった。
「nilへのメソッド呼び出しは無視されるからNull安全!」とか言わせねぇぞ。
👍
高評価
0
👎
低評価
0
18 ななしのよっしん
2022/12/28(水) 13:03:48 ID: f2h8q8QYbe
これで「プログラマに寄り添った」と思うとかどんな信者だよ。
👍
高評価
0
👎
低評価
0
19 ななしのよっしん
2023/01/10(火) 02:23:03 ID: f2h8q8QYbe
JavaC#で飼い慣らされてると思うのは勝手だが、世の中はそのくらい当たり前にできる言ゴロゴロ存在することは知っておくべきだな。Appleに飼い慣らされてる信者もは。
👍
高評価
0
👎
低評価
0

スマホで作られた新規記事

こちらの記事に加筆・修正してみませんか?

画面遷移確認のための記事 健康優良児 あらそう