[解決済み] Objective C - 値で渡す、参照で渡す
2022-02-16 21:48:28
質問内容
まず、こんな簡単な質問で申し訳ありません。しかし、何が起こっているのかを理解する必要があります。
という出力になるかと思いきや
upper case string
. しかし、それは次のようになります。
UPPER CASE STRING
.
- (void)test
{
NSString *stringVar = @"UPPER CASE STRING";
[self changeString:stringVar];
NSLog(@"value after changed : %@", stringVar);
}
- (void)changeString:(NSString*)string
{
string = [string lowercaseString];
}
何が起きているのか、どうすれば直るのか。
解決方法は?
その
[string lowercaseString]
の呼び出しは
新しい
NSString
オブジェクトを作成し、それをローカル変数
string
. の値を変更するものではありません。
stringVar
の外側で
changeString
関数を使用します。ポインタ自体は値で渡される。
やりたいことをやるには、ポインタをポインタに渡すという方法もある。
-(void) test
{
NSString *stringVar = @"UPPER CASE STRING";
[self changeString:&stringVar];
NSLog(@"value after changed : %@", stringVar);
}
-(void) changeString:(NSString**)string
{
*string = [*string lowercaseString];
}
関連
-
[解決済み] EXC_CORPSE_NOTIFY シンボルのクラッシュが発生しました、追跡するには?
-
[解決済み] UIViewAlertForUnsatisfiableConstraintsでトラップする方法は?
-
[解決済み] Objective-Cの定数
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] 変数を参照渡しする方法を教えてください。
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] 文字列を繰り返す簡単な方法
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】印刷します。エントリ, ":CFBundleIdentifier", Does Not Exist
-
[解決済み】 libc++abi.dylib: NSException 型のキャッチできない例外で終了する (lldb)
-
[解決済み】NSURLErrorDomainエラーコードの説明
-
[解決済み] Xcodeエラー "Could not find Developer Disk Image" が発生する。
-
[解決済み] Xcodeで "No such module "というエラーが出るが、フレームワークはある
-
[解決済み] Swiftを使って音を鳴らすには?
-
[解決済み] このアクションは完了できませんでした。再試行 (-22421)
-
[解決済み] Swift の performSegueWithIdentifier が動作しない。
-
[解決済み] Xcode 4のBundle creator OS Type code ?
-
[解決済み] Stringをformatで作成するには?