簡體   English   中英

不兼容的指針類型從NSArray分配給NSMutableString

[英]Incompatible pointer types assigning to NSMutableString from NSArray

我是iOS的新手。

我有以下警告,我不知道該如何解決:

NSString *getNos=[textField.text stringByReplacingCharactersInRange:range withString:string];

NSMutableArray *allNos = [[getNos stringByReplacingOccurrencesOfString:@" " withString:@""]componentsSeparatedByString:@","];

NSString *matchNo = [[allNos lastObject] stringByReplacingOccurrencesOfString:@" " withString:@""];

在第二行和第三行,我有以下警告消息:

Incompatible pointer types assigning to 'NSMutableArray * from NSArray *
and
Incompatible pointer types sending NSString * to parameter of type NSMutableString*

stringByReplacingOccurrencesOfString:返回一個NSArray而不是NSMutableArray

如果確實需要NSMutableArray請將NSMutableArray更改為NSArray或添加mutableCopy

NSMutableArray *allNos = [[[getNos stringByReplacingOccurrencesOfString:@" " withString:@""]componentsSeparatedByString:@","] mutableCopy];

也有一個錯字:缺少“ *”。

注意:通過使用中間件,代碼更易於查看,更易於查明錯誤:

NSString *getNos = @"a b, c d";
NSString *cleanNos = [getNos stringByReplacingOccurrencesOfString:@" " withString:@""];
NSMutableArray *allNos = [[cleanNos componentsSeparatedByString:@","] mutableCopy];
NSLog(@"allNos: %@", allNos);

NSLog輸出:

allNos: (
    ab,
    cd
)

您正在嘗試將NSArray分配給NSMutableArray,但同時也缺少指針*,請替換為

 NSMutableArray  allNos = ...

有了這個

NSMutableArray  *allNos = [NSMutableArray arrayWithArray://YOUR stuff here]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM