問題タブ [ivars]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - readonly 属性の後の _property をさらに明確にしますか?
インターフェイス セクションで readonly 属性を設定すると、プロパティのセッター メソッドが「無効」になります。次の点について明確にする必要があります。
- _propertyName を使用して設定できる場合、読み取り専用プロパティのポイントは何ですか?
プロパティが readwrite の場合、いつ _propertyName を使用しますか?
また、_propertyName を使用して値を割り当てるだけでなく、ある程度の抽象化のためにセッター メソッドを使用することも理解しています。_propertyName を使用しない他の理由はありますか?
以下にサンプルコードを示します。ありがとうございました。
インターフェース部
実装セクション
objective-c - ivars を使用してクラス内のプロパティ値を定義する
クラスメソッド内のプロパティにリンクされたプライベートにアクセスすることはivar
、合成されたゲッター/セッターメソッドを使用するよりも効率的ですか、それとも効率はまったく同じですか? ...次のように:
後者は実行に時間がかかると思いますが、アプリ開発者が一貫性と優れたプログラミング手法のために使用することを提案しているものと、両方の割り当てが基本的に同じ時間の複雑さであるかどうかを知りたいです。
objective-c - を使用して ivar にアクセスします。表記
次のクラスがあるとします。
次に age 変数に値を割り当てたい場合は、クラス メソッドを使用して main で次のことを行うことができます。
しかし、いじってみると、 を使用して ivar に直接アクセスできるように見えることに気づきました。表記。これで警告やエラーは発生しません。
最終結果はどちらも同じように見えますが、. このように ivar に直接アクセスするための表記法。
すべての ivar に対してゲッターとセッターを使用する必要がありますか、それともこのように直接アクセスしていますか?
ありがとう
ios - Assign を使用するとメモリの使用量が減りますか?
合成されたプロパティを宣言するときに使用するとassign
、ARC はそれに一致する ivar を自動的に作成しますか? 私の財産は次のとおりです
と
_text
自動生成されたivarを使用したことはありません。省略してもコンパイラはこのivarを作成します@synthesize text = _text
か、それとも未使用のivarは未使用のメモリにそのまま残りますか?
objective-c - サブクラスには親のパブリック プロパティの ivar がありません
私はobjective-cを学んでいますが、答えが見つからないことがあります。
クラスのパブリック インターフェイスでプロパティを宣言しました。そのクラスでは、プロパティを合成せずに、アンダースコアを使用して ivar に直接アクセスできます。
例えば:
// Class.h
@property (nonatomic, strong) NSString *someString;
// Class.m
_someString = something;
しかし、そのクラスをサブクラス化すると、追加のコードなしでセッターとゲッターにアクセスできますが、プロパティを明示的に合成しない限り、ivar に直接アクセスすることはできません。これは、スーパークラスで必要な手順ではありません。
同じスーパークラスの 2 つのサブクラスがあり、それぞれがスーパークラスのプロパティに独自の値を持っているため、サブクラスに固有の ivar が作成されるという事実を知っています。ivar に直接アクセスしたい場合、サブクラスを明示的に合成する必要がある理由がわかりません。
それは実際には問題ではありませんが、好奇心です。
objective-c - メソッドで Ivar に値を送信する方法
Objective-Cは初めてで、非常にシンプルに保ちます一度に1つのことを理解しようとしています...学生と呼ばれる非常に単純なクラスをセットアップします.2つの数字を追加して、物事がどのようにやり取りされるかを確認しようとしています.メソッドから) **コードを書き直しました ==>> 最後を見て、動作するバージョンを確認してください **
私が持っている方法があれば
私は学生と呼ばれるクラスのインスタンスを持っています。値を割り当てるのfirstNum
はstudent.firstNum = 100; student.secondNum = 77;
簡単で、メソッドはそれらを追加し、合計をreturn
しかし、主に配列から割り当てようとしましたが、うまくいきませんでした
と
整数変換への互換性のないポインターと表示されます
firstNum
これはメインのスニペットです。最終的には設定しようとしていますが、完全ではありません。最終的にはsecondNum
、各ペアを設定してメソッドに送信し、一緒に追加しますが、今のところ、値が割り当てられた firstNum を取得しようとして立ち往生していmyIntegers[i]
ます始める
私も試し[i]
ました。
これが私の方法です:
HERE IS WHAT WORKS:学生オブジェクトがあると仮定します
.m
(long)addNumbers:(NSNumber *)x :(NSNumber *)y {
長期;
合計 = [x 整数値] + [y 整数値]; 合計を返します。}
主要
NSMutableArray *myIntegers1 = [NSMutableArray 配列]; NSMutableArray *myIntegers2 = [NSMutableArray 配列];
long sum = [student addNumbers:[myIntegers1 objectAtIndex:i] :[myIntegers2 objectAtIndex:i]];
ios - プロパティの代わりにIBOutletsにivarを使用するのはなぜですか?
私はちょうど新しいプロジェクトに取り組み始めました。多くのレガシーコードがあり、次のコードを見つけました
いくつか疑問があります:
- IBOutlet にプライベート ivar を使用する利点は何ですか?
- __weak を追加する理由 私がARC環境で理解しているように、ivarは常に弱いです。
ありがとう