我有一个带有几个数组的plist字典,每个数组都有不同数量的项目.这些项目也是字典.所以基本上它看起来像这样:
我想找到更改其中一个数组(placeName,description,height)中的值的最佳方法.
plist是资源的一部分,所以我这样称它:
[[NSMutableDictionary alloc] initFromName:@"mydefaults.plist"];
Run Code Online (Sandbox Code Playgroud)
我已经看到了setValue:forKey方法,但看起来我正陷入混乱.如果它只是一个值,我认为我不应该设置整个完整的数组.
那么,哪种方式最好?
如何从反转中删除对象NSArray.
目前我有一个NSMutableArray,然后我反过来
NSArray* reversedCalEvents = [[calEvents reverseObjectEnumerator] allObjects];
Run Code Online (Sandbox Code Playgroud)
现在我需要从项目中删除reversedCalEvents或calEvents自动刷新数组根据条件显示的表.即
if(someInt == someOtherInt){
remove object at index 0
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我无法让它发挥作用.
我有一个NSMutableArray组成的NSStrings.当我需要对它进行排序时,我使用的[array sortUsingSelector:@selector(caseInsensitiveCompare:)]是完美的.
但有时我需要通过NSStrings 的子串对数组进行排序.在这种情况下,子串被定义为NSString跟随某个标记的一部分.事实上,标记可以在每个字符串中以不同方式定位.
显然,我可以NSString分成两个对象并对它们进行排序,但这需要进行重大更改.
有没有办法使用类似于我上面描述的选择器进行排序?
我想如果没有,那么我可以通过创建一个数组的排序副本(而不是使用选择器来完成它),然后释放原始数据.
这是我创建CFArrayRef的代码.我想知道如何使它成为NSMutableArray.我需要它用于我的TableViewController.或者是否有另一种方法在TableViewController中使用CFArrayRef?
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef arrayOfAllPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
Run Code Online (Sandbox Code Playgroud) 我知道我们可以只使用a NSMutableArray作为对象,但如果这不是一个选项,我们需要添加新的元素NSArray.我们该怎么做呢?
我的直接答案是创建一个NSMutableArray原始的NSArray,添加新的元素,然后再NSMutableArray回到原始NSArray.
我在接受采访时被问到这个问题,我很好奇一个正确的解决方案是什么,除了一开始就使用a NSMutableArray.
删除NSMutableArray中的对象后,我有一个奇怪的错误.

如果我删除一个对象
[Array removeObjectAtIndex:2];
Run Code Online (Sandbox Code Playgroud)
数组改为:

为什么现在有2个ContactViewControllers?
我有以下代码.
NSMutableArray *aList = [[NSMutableArray alloc] init];
for (NSIndexPath *indexPath in tableview1.indexPathsForSelectedRows) {
NSString *r = [NSString stringWithFormat:@"%i",indexPath.row];
[aList addObject:r];
}
Run Code Online (Sandbox Code Playgroud)
所以我得到的是一个选择的UITableView行列表.有没有得到一个简单的方法列表所行不选择?
谢谢您的帮助.
我试图写一些从这样的NSMutableArray生成的数据
// set up keychain so I can write to it… or read if needed (specially for testing)
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" accessGroup:nil];
[keychain setObject:(__bridge id)(kSecAttrAccessibleWhenUnlocked) forKey:(__bridge id)(kSecAttrAccessible)];
//write to keychain
NSData *parsedRemoteSitesData = [NSKeyedArchiver archivedDataWithRootObject:parsedRemoteSitesMutableArray]; // converts MutableArray to NSData
[keychain setObject:parsedRemoteSitesData forKey:(__bridge id)(kSecValueData)]; pass data to keychain
Run Code Online (Sandbox Code Playgroud)
我的应用程序崩溃在那里我试图将NSData传递给钥匙串的最后一行,这是它给出的错误.
** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMutableData dataUsingEncoding:]: unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)
我认为这意味着我没有编码我的NSData,同时将数组传递给它,但我不确定..我希望有人可以告诉我或提供一些示例代码来解决这个问题.
任何帮助将不胜感激.
我正在做一些关于写入和加载文件的练习.
我创建了一个NSString,然后将其写入文件,然后NSString再次加载.简单.
我怎样才能做到这一点用NSMutableArray的NSStrings,或者更好的NSMutableArray是我自己的类?
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
//write a NSString to a file
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"file.txt"];
NSString *str = @"hello world";
NSArray *myarray = [[NSArray alloc]initWithObjects:@"ola",@"alo",@"hello",@"hola", nil];
[str writeToFile:filePath atomically:TRUE encoding:NSUTF8StringEncoding error:NULL];
//load NSString from a file
NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory2 …Run Code Online (Sandbox Code Playgroud) 我有一个带字典的数组示例:
(
{
Email = "kate-bell@mac.com";
Name = "Kate Bell";
Number = "(555) 564-8583";
},
{
Email = "d-higgins@mac.com";
Name = "Daniel Higgins";
Number = "555-478-7672";
}
)
Run Code Online (Sandbox Code Playgroud)
我想根据密钥"名称"过滤这个字典
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
let predicate = NSPredicate(format:"Name == %@", searchText)
let filteredArray = (arrContact as NSMutableArray).filteredArrayUsingPredicate(predicate)
print(filteredArray)
if(filteredArray.count == 0){
searchActive = false;
} else {
searchActive = true;
}
tblData.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
我总是从上面的swift代码得到空数组.请帮我解决这个问题.谢谢
nsmutablearray uisearchbar nsmutabledictionary nspredicate swift2
nsmutablearray ×10
objective-c ×6
ios ×5
xcode ×3
cocoa-touch ×2
uitableview ×2
cocoa ×1
file-io ×1
ios6 ×1
iphone ×1
keychain ×1
nsarray ×1
nsdata ×1
nspredicate ×1
nsstring ×1
swift2 ×1
uisearchbar ×1