我有一个NSMutableArray包含一些NSString对象.如何测试数组是否包含特定的字符串文字?
我尝试[array containsObject:@"teststring"]但是这不起作用.
我必须创建一个动态NSArray,也就是说,我不知道数组的大小或数组将具有的元素.需要动态地将元素添加到数组中.我查看了NSArray类引用.有一个名为arrayWithObjects的方法,应该在初始化数组本身时使用.但我不知道如何实现我需要做的事情.
我需要做一些像下面这样的事情:
NSArray *stringArray = [[NSArray init] alloc] ;
for (int i = 0; i < data.size; i++){
stringArray.at(i) = getData(i);
}
Run Code Online (Sandbox Code Playgroud) 我已经定义了一个类,我希望公共属性看起来好像是由一个NSArray.这很简单,但在我的情况下,实际的支持ivar是NSMutableArray:
@interface Foo
{
NSMutableArray* array;
}
@property (nonatomic, retain) NSArray* array;
@end
Run Code Online (Sandbox Code Playgroud)
在我的实现文件(*.m)我@synthesize的属性,但我立即遇到警告,因为使用self.words与尝试修改一样NSArray.
这样做的正确方法是什么?
谢谢!
我是Objective-C和iOS的新手,所以我一直在玩Picker View.我已经定义了一个Person Class,这样当你创建一个新的Person时,它会自动给那个人一个名字和年龄.
#import "Person.h"
@implementation Person
@synthesize personName, age;
-(id)init
{
self = [super init];
if(self)
{
personName = [self randomName];
age = [self randomAge];
}
return self;
}
-(NSString *) randomName
{
NSString* name;
NSArray* nameArr = [NSArray arrayWithObjects: @"Jill Valentine", @"Peter Griffin", @"Meg Griffin", @"Jack Lolwut",
@"Mike Roflcoptor", @"Cindy Woods", @"Jessica Windmill", @"Alexander The Great",
@"Sarah Peterson", @"Scott Scottland", @"Geoff Fanta", @"Amanda Pope", @"Michael Meyers",
@"Richard Biggus", @"Montey Python", @"Mike Wut", @"Fake Person", @"Chair",
nil];
NSUInteger randomIndex …Run Code Online (Sandbox Code Playgroud) 我想将Swift样式字符串数组保存到NSUserDefaults中,但实际上代码中的"if"语句表示returnValue始终为nil.
稍后在代码(iOS 8)中我想使用"food + = ["spaghetti"]添加新条目.
var food : [String] {
get {
var returnValue : [String]? = NSUserDefaults.standardUserDefaults().objectForKey("food") as? [String]
if returnValue == nil //Check for first run of app
{
returnValue = ["muesli", "banana"]; //Default value
}
return returnValue!
}
set (newValue) {
NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "food")
NSUserDefaults.standardUserDefaults().synchronize()
}
}
Run Code Online (Sandbox Code Playgroud) 我只是想,因为如果我创建其中两个然后将它们添加到NSArray中,你可以将块视为对象,是否有办法从数组中执行它们?
int (^Block_001)(void) = ^{ return 101; };
int (^Block_002)(void) = ^{ return 202; };
NSArray *array = [NSArray arrayWithObjects:Block_001, Block_002, nil];
Run Code Online (Sandbox Code Playgroud)
编辑:更新清晰Per @ davedelong的优秀答案
int (^Block_001)(void) = [^{ return 101; } copy];
int (^Block_002)(void) = [^{ return 202; } copy];
NSArray *array = [NSArray arrayWithObjects:Block_001, Block_002, nil];
[Block_001 release];
[Block_002 release];
Run Code Online (Sandbox Code Playgroud) 我使用库ObjectMapper将json映射到我的对象,但是我有一些问题要映射根json数组.
这是收到的json:
[
{
CustomerId = "A000015",
...
},
{
CustomerId = "A000016",
...
},
{
CustomerId = "A000017",
...
}
]
Run Code Online (Sandbox Code Playgroud)
这是我的目标
class Customer : Mappable
{
var CustomerId : String? = nil
class func newInstance(map: Map) -> Mappable? {
return Customer()
}
func mapping(map: Map) {
CustomerId <- map["CustomerId"]
}
}
Run Code Online (Sandbox Code Playgroud)
我用我的控制器映射json
let json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &error) as! NSArray
if (error != nil) {
return completionHandler(nil, error)
} else {
var customers = Mapper<Customer>().map(json)
} …Run Code Online (Sandbox Code Playgroud) 我有一个NSArray使用该[CalCalendarStore eventPredicateWithStartDate]方法返回的CalEvents .从返回的事件中,我试图只保留事件标题== @"on call"(不区分大小写)的那些事件.
我能够在数组中保留标题包含 @"on call"以下代码的事件(其中'events'是'NSArray'填充的CalEvents):
NSPredicate *onCallPredicate = [NSPredicate predicateWithFormat:@"(SELF.title CONTAINS[c] 'on call')"];
[events filteredArrayUsingPredicate:onCallPredicate];
Run Code Online (Sandbox Code Playgroud)
我尝试使用谓词格式字符串,如:
@"SELF.title == 'on call'" 但这似乎不起作用.
有更简单的方法吗?
我有一个NSMutableArray对象(保留,合成为全部),启动得很好,我可以使用该addObject:方法轻松地向其添加对象.但是如果我想用一个新的替换某个索引处的某个对象NSMutableArray,它就不起作用了.
例如:
ClassA.h:
@interface ClassA : NSObject {
NSMutableArray *list;
}
@property (nonatomic, copy, readwrite) NSMutableArray *list;
@end
Run Code Online (Sandbox Code Playgroud)
ClassA.m:
#import "ClassA.h"
@implementation ClassA
@synthesize list;
- (id)init
{
[super init];
NSMutableArray *localList = [[NSMutableArray alloc] init];
self.list = localList;
[localList release];
//Add initial data
[list addObject:@"Hello "];
[list addObject:@"World"];
}
// Custom set accessor to ensure the new list is mutable
- (void)setList:(NSMutableArray *)newList
{
if (list != newList)
{
[list release]; …Run Code Online (Sandbox Code Playgroud) 我有一个NSDictionary看起来像:
{
"Item1" = 2.4;
"Item2" = 5.5;
"Item3" = 15.6;
}
Run Code Online (Sandbox Code Playgroud)
要NSDictionary在表格视图中使用此项目,我必须将其转移到a NSArray,我是对的吗?
所以我尝试:
NSDictionary *dict = [myDict objectForKey:@"items"];
for (id item in dict) {
[_myArray addObject:[dict objectForKey:item]];
}
Run Code Online (Sandbox Code Playgroud)
但_myArray一直空着?我究竟做错了什么?
nsarray ×10
objective-c ×7
ios ×5
iphone ×2
swift ×2
arrays ×1
cocoa-touch ×1
json ×1
mutable ×1
nsdictionary ×1
nspredicate ×1
nsstring ×1
string ×1